163
163
commit = revision_to_commit(rev, tree_sha, parent_lookup)
164
164
objects.append((commit, None))
165
165
self._git.object_store.add_objects(objects)
166
return commit.sha().hexdigest()
168
167
def dfetch(self, source, stop_revision):
169
168
if stop_revision is None:
170
169
raise NotImplementedError
176
174
graph = source.get_graph()
177
ancestry = [x for x in source.get_ancestry(stop_revision) if x is not None]
178
for revid in graph.iter_topo_order(ancestry):
175
for revid, parents in graph.iter_ancestry([stop_revision]):
179
176
if not self.has_revision(revid):
180
177
todo.append(revid)
181
178
pb = ui.ui_factory.nested_progress_bar()
183
for i, revid in enumerate(todo):
180
for i, revid in enumerate(reversed(todo)):
184
181
pb.update("pushing revisions", i, len(todo))
185
git_commit = self.import_revision_gist(source, revid, gitidmap.__getitem__)
186
gitidmap[revid] = git_commit
187
git_revid = self.get_mapping().revision_id_foreign_to_bzr(git_commit)
188
revidmap[revid] = git_revid
182
revidmap[revid] = self.import_revision_gist(source, revid, revidmap.get)
191
source.fetch(self, revision_id=revidmap[stop_revision])
257
250
def set_make_working_trees(self, trees):
260
def fetch_objects(self, determine_wants, graph_walker, resolve_ext_ref, progress=None):
253
def fetch_objects(self, determine_wants, graph_walker, progress=None):
261
254
return self._git.fetch_objects(determine_wants, graph_walker, progress)