/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 push.py

Report on pack objects progress.

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
 
45
45
    """
46
46
 
47
 
    def __init__(self, source, mapping):
 
47
    def __init__(self, source, mapping, pb=None):
48
48
        """Create a new missing objects iterator.
49
49
 
50
50
        """
53
53
        self._revids = set()
54
54
        self._sent_shas = set()
55
55
        self._pending = []
 
56
        self.pb = pb
56
57
 
57
58
    def import_revisions(self, revids):
58
59
        self._revids.update(revids)
59
 
        pb = ui.ui_factory.nested_progress_bar()
60
 
        try:
61
 
            for i, revid in enumerate(revids):
62
 
                pb.update("pushing revisions", i, len(revids))
63
 
                git_commit = self.import_revision(revid)
64
 
                yield (revid, git_commit)
65
 
        finally:
66
 
            pb.finished()
 
60
        for i, revid in enumerate(revids):
 
61
            if self.pb:
 
62
                self.pb.update("pushing revisions", i, len(revids))
 
63
            git_commit = self.import_revision(revid)
 
64
            yield (revid, git_commit)
67
65
 
68
66
    def need_sha(self, sha):
69
67
        if sha in self._sent_shas:
109
107
        return len(self._pending)
110
108
 
111
109
    def __iter__(self):
112
 
        for (object, path) in self._pending:
 
110
        for i, (object, path) in enumerate(self._pending):
 
111
            if self.pb:
 
112
                self.pb.update("writing pack objects", i, len(self))
113
113
            if isinstance(object, tuple):
114
114
                object = self._object_store._get_ie_object(*object)
115
115
            yield (object, path)   
151
151
        self.source.lock_read()
152
152
        try:
153
153
            todo = self.missing_revisions(stop_revision)
154
 
            object_generator = MissingObjectsIterator(self.source, mapping)
155
 
            for old_bzr_revid, git_commit in object_generator.import_revisions(
156
 
                todo):
157
 
                new_bzr_revid = mapping.revision_id_foreign_to_bzr(git_commit)
158
 
                revidmap[old_bzr_revid] = new_bzr_revid
159
 
            self.target._git.object_store.add_objects(object_generator) 
 
154
            pb = ui.ui_factory.nested_progress_bar()
 
155
            try:
 
156
                object_generator = MissingObjectsIterator(self.source, mapping, pb)
 
157
                for old_bzr_revid, git_commit in object_generator.import_revisions(
 
158
                    todo):
 
159
                    new_bzr_revid = mapping.revision_id_foreign_to_bzr(git_commit)
 
160
                    revidmap[old_bzr_revid] = new_bzr_revid
 
161
                self.target._git.object_store.add_objects(object_generator) 
 
162
            finally:
 
163
                pb.finished()
160
164
        finally:
161
165
            self.source.unlock()
162
166
        return revidmap