~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree.py

  • Committer: Andrew Bennetts
  • Date: 2007-08-02 06:40:58 UTC
  • mfrom: (2666 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2668.
  • Revision ID: andrew.bennetts@canonical.com-20070802064058-09eblz1qbc01fcr3
Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
460
460
        return file(self.abspath(filename), 'rb')
461
461
 
462
462
    @needs_read_lock
463
 
    def annotate_iter(self, file_id):
 
463
    def annotate_iter(self, file_id, default_revision=CURRENT_REVISION):
464
464
        """See Tree.annotate_iter
465
465
 
466
466
        This implementation will use the basis tree implementation if possible.
493
493
                    continue
494
494
                old.append(list(tree.annotate_iter(file_id)))
495
495
            return annotate.reannotate(old, self.get_file(file_id).readlines(),
496
 
                                       CURRENT_REVISION)
 
496
                                       default_revision)
497
497
        finally:
498
498
            basis.unlock()
499
499
 
 
500
    def _get_ancestors(self, default_revision):
 
501
        ancestors = set([default_revision])
 
502
        for parent_id in self.get_parent_ids():
 
503
            ancestors.update(self.branch.repository.get_ancestry(
 
504
                             parent_id, topo_sorted=False))
 
505
        return ancestors
 
506
 
500
507
    def get_parent_ids(self):
501
508
        """See Tree.get_parent_ids.
502
509
        
793
800
        self._control_files.put(filename, my_file)
794
801
 
795
802
    @needs_write_lock # because merge pulls data into the branch.
796
 
    def merge_from_branch(self, branch, to_revision=None):
 
803
    def merge_from_branch(self, branch, to_revision=None, from_revision=None,
 
804
        merge_type=None):
797
805
        """Merge from a branch into this working tree.
798
806
 
799
807
        :param branch: The branch to merge from.
824
832
                merger.other_rev_id)
825
833
            merger.other_branch = branch
826
834
            merger.pp.next_phase()
827
 
            merger.find_base()
 
835
            if from_revision is None:
 
836
                merger.find_base()
 
837
            else:
 
838
                merger.set_base_revision(from_revision, branch)
828
839
            if merger.base_rev_id == merger.other_rev_id:
829
840
                raise errors.PointlessMerge
830
841
            merger.backup_files = False
831
 
            merger.merge_type = Merge3Merger
 
842
            if merge_type is None:
 
843
                merger.merge_type = Merge3Merger
 
844
            else:
 
845
                merger.merge_type = merge_type
832
846
            merger.set_interesting_files(None)
833
847
            merger.show_base = False
834
848
            merger.reprocess = False