~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tree.py

Merge with annotate

Show diffs side-by-side

added added

removed removed

Lines of Context:
374
374
                                 last_revision_base)
375
375
 
376
376
    def _get_file_revision(self, file_id, vf, tree_revision):
 
377
        """Ensure that file_id, tree_revision is in vf to plan the merge."""
377
378
        def file_revision(revision_tree):
378
379
            revision_tree.lock_read()
379
380
            try:
388
389
                except:
389
390
                    yield self.repository.revision_tree(revision_id)
390
391
 
391
 
        if getattr(self, '_get_weave', None) is None:
 
392
        if getattr(self, '_repository', None) is None:
392
393
            last_revision = tree_revision
393
 
            parent_revisions = [file_revision(t) for t in iter_parent_trees()]
394
 
            vf.add_lines(last_revision, parent_revisions,
 
394
            parent_keys = [(file_id, file_revision(t)) for t in
 
395
                iter_parent_trees()]
 
396
            vf.add_lines((file_id, last_revision), parent_keys,
395
397
                         self.get_file(file_id).readlines())
396
398
            repo = self.branch.repository
397
 
            transaction = repo.get_transaction()
398
 
            base_vf = repo.weave_store.get_weave(file_id, transaction)
 
399
            base_vf = repo.texts
399
400
        else:
400
401
            last_revision = file_revision(self)
401
 
            base_vf = self._get_weave(file_id)
402
 
        vf.fallback_versionedfiles.append(base_vf)
 
402
            base_vf = self._repository.texts
 
403
        if base_vf not in vf.fallback_versionedfiles:
 
404
            vf.fallback_versionedfiles.append(base_vf)
403
405
        return last_revision
404
406
 
405
407
    inventory = property(_get_inventory,
448
450
        """
449
451
        return find_ids_across_trees(paths, [self] + list(trees), require_versioned)
450
452
 
 
453
    @symbol_versioning.deprecated_method(symbol_versioning.one_six)
451
454
    def print_file(self, file_id):
452
455
        """Print file with id `file_id` to stdout."""
453
456
        import sys