/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to repository.py

Add FOSDEM roundtripping notes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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()
167
166
 
168
167
    def dfetch(self, source, stop_revision):
169
168
        if stop_revision is None:
170
169
            raise NotImplementedError
171
170
        revidmap = {}
172
 
        gitidmap = {}
173
171
        todo = []
174
 
        source.lock_write()
 
172
        source.lock_read()
175
173
        try:
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()
182
179
            try:
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)
189
183
            finally:
190
184
                pb.finished()
191
 
            source.fetch(self, revision_id=revidmap[stop_revision])
192
185
        finally:
193
186
            source.unlock()
194
187
        return revidmap
257
250
    def set_make_working_trees(self, trees):
258
251
        pass
259
252
 
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)
262
255
 
263
256