~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/fetch.py

  • Committer: Robert Collins
  • Date: 2005-10-05 06:44:02 UTC
  • Revision ID: robertc@robertcollins.net-20051005064401-cf09e893438d1d6c
only pull remote text weaves once per fetch operation

Show diffs side-by-side

added added

removed removed

Lines of Context:
97
97
        self.count_copied = 0
98
98
        self.count_total = 0
99
99
        self.count_texts = 0
 
100
        self.copied_file_ids = set()
100
101
        if pb is None:
101
102
            self.pb = bzrlib.ui.ui_factory.progress_bar()
102
103
        else:
191
192
        self._copy_inventory(rev_id, inv_xml, parents)
192
193
        self._copy_ancestry(rev_id, parents)
193
194
        self.to_branch.revision_store.add(StringIO(rev_xml), rev_id)
 
195
        mutter('copied revision %s', rev_id)
194
196
 
195
197
 
196
198
    def _copy_inventory(self, rev_id, inv_xml, parent_ids):
221
223
 
222
224
    def _copy_one_text(self, rev_id, file_id):
223
225
        """Copy one file text."""
224
 
        mutter('copy text version {%s} of file {%s}',
225
 
               rev_id, file_id)
 
226
        mutter('copy file {%s} modified in {%s}', file_id, rev_id)
 
227
        if file_id in self.copied_file_ids:
 
228
            mutter('file {%s} already copied', file_id)
 
229
            return
226
230
        from_weave = self.from_weaves.get_weave(file_id)
227
 
        from_idx = from_weave.lookup(rev_id)
228
 
        from_parents = map(from_weave.idx_to_name, from_weave.parents(from_idx))
229
 
        text_lines = from_weave.get(from_idx)
230
231
        to_weave = self.to_weaves.get_weave_or_empty(file_id)
231
 
        to_parents = map(to_weave.lookup, from_parents)
232
 
        # it's ok to add even if the text is already there
233
 
        to_weave.add(rev_id, to_parents, text_lines)
 
232
        to_weave.join(from_weave)
234
233
        self.to_weaves.put_weave(file_id, to_weave)
235
234
        self.count_texts += 1
 
235
        self.copied_file_ids.add(file_id)
 
236
        mutter('copied file {%s}', file_id)
236
237
 
237
238
 
238
239
fetch = Fetcher