/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 bzrlib/workingtree.py

  • Committer: Robert Collins
  • Date: 2007-08-22 00:00:26 UTC
  • mfrom: (2739 +trunk)
  • mto: (2592.3.96 repository)
  • mto: This revision was merged to the branch mainline in revision 2742.
  • Revision ID: robertc@robertcollins.net-20070822000026-kvufiqhlreokb1en
Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
399
399
            # the basis tree is a ghost so return an empty tree.
400
400
            return self.branch.repository.revision_tree(None)
401
401
 
 
402
    def _cleanup(self):
 
403
        self._flush_ignore_list_cache()
 
404
 
402
405
    @staticmethod
403
406
    @deprecated_method(zero_eight)
404
407
    def create(branch, directory):
800
803
        self._control_files.put(filename, my_file)
801
804
 
802
805
    @needs_write_lock # because merge pulls data into the branch.
803
 
    def merge_from_branch(self, branch, to_revision=None):
 
806
    def merge_from_branch(self, branch, to_revision=None, from_revision=None,
 
807
        merge_type=None):
804
808
        """Merge from a branch into this working tree.
805
809
 
806
810
        :param branch: The branch to merge from.
831
835
                merger.other_rev_id)
832
836
            merger.other_branch = branch
833
837
            merger.pp.next_phase()
834
 
            merger.find_base()
 
838
            if from_revision is None:
 
839
                merger.find_base()
 
840
            else:
 
841
                merger.set_base_revision(from_revision, branch)
835
842
            if merger.base_rev_id == merger.other_rev_id:
836
843
                raise errors.PointlessMerge
837
844
            merger.backup_files = False
838
 
            merger.merge_type = Merge3Merger
 
845
            if merge_type is None:
 
846
                merger.merge_type = Merge3Merger
 
847
            else:
 
848
                merger.merge_type = merge_type
839
849
            merger.set_interesting_files(None)
840
850
            merger.show_base = False
841
851
            merger.reprocess = False
1561
1571
        if ignoreset is not None:
1562
1572
            return ignoreset
1563
1573
 
1564
 
        ignore_globs = set(bzrlib.DEFAULT_IGNORE)
 
1574
        ignore_globs = set()
1565
1575
        ignore_globs.update(ignores.get_runtime_ignores())
1566
1576
        ignore_globs.update(ignores.get_user_ignores())
1567
1577
        if self.has_filename(bzrlib.IGNORE_FILENAME):
1630
1640
    @needs_read_lock
1631
1641
    def _last_revision(self):
1632
1642
        """helper for get_parent_ids."""
1633
 
        return self.branch.last_revision()
 
1643
        return _mod_revision.ensure_null(self.branch.last_revision())
1634
1644
 
1635
1645
    def is_locked(self):
1636
1646
        return self._control_files.is_locked()
2399
2409
            raise
2400
2410
 
2401
2411
    def unlock(self):
 
2412
        # do non-implementation specific cleanup
 
2413
        self._cleanup()
 
2414
 
2402
2415
        # we share control files:
2403
2416
        if self._control_files._lock_count == 3:
2404
2417
            # _inventory_is_modified is always False during a read lock.
2430
2443
            return osutils.safe_revision_id(
2431
2444
                        self._control_files.get('last-revision').read())
2432
2445
        except errors.NoSuchFile:
2433
 
            return None
 
2446
            return _mod_revision.NULL_REVISION
2434
2447
 
2435
2448
    def _change_last_revision(self, revision_id):
2436
2449
        """See WorkingTree._change_last_revision."""
2470
2483
        return _mod_conflicts.ConflictList.from_stanzas(RioReader(confile))
2471
2484
 
2472
2485
    def unlock(self):
 
2486
        # do non-implementation specific cleanup
 
2487
        self._cleanup()
2473
2488
        if self._control_files._lock_count == 1:
2474
2489
            # _inventory_is_modified is always False during a read lock.
2475
2490
            if self._inventory_is_modified: