~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branch.py

  • Committer: Robert Collins
  • Date: 2006-01-25 01:43:34 UTC
  • mto: (1534.1.15 integration)
  • mto: This revision was merged to the branch mainline in revision 1550.
  • Revision ID: robertc@robertcollins.net-20060125014334-8dd9ed73c26c5956
Implement final review suggestions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
61
61
# TODO: Some operations like log might retrieve the same revisions
62
62
# repeatedly to calculate deltas.  We could perhaps have a weakref
63
63
# cache in memory to make this faster.  In general anything can be
64
 
# cached in memory between lock and unlock operations.
65
 
 
66
 
def find_branch(*ignored, **ignored_too):
67
 
    # XXX: leave this here for about one release, then remove it
68
 
    raise NotImplementedError('find_branch() is not supported anymore, '
69
 
                              'please use one of the new branch constructors')
 
64
# cached in memory between lock and unlock operations. .. nb thats
 
65
# what the transaction identity map provides
70
66
 
71
67
 
72
68
######################################################################
248
244
                raise bzrlib.errors.NoSuchRevision(self, stop_revision)
249
245
        return other_history[self_len:stop_revision]
250
246
 
251
 
    
252
247
    def update_revisions(self, other, stop_revision=None):
253
248
        """Pull in new perfect-fit revisions."""
254
249
        raise NotImplementedError('update_revisions is abstract')
548
543
            ('ancestry.weave', empty_weave)
549
544
        ]
550
545
        cfe = self.control_files._escape
 
546
        # FIXME: RBC 20060125 dont peek under the covers
551
547
        self.control_files._transport.mkdir_multi([cfe(d) for d in dirs],
552
548
                mode=self.control_files._dir_mode)
553
549
        self.control_files.lock_write()
568
564
        classes to support downlevel branches.  But not yet.
569
565
        """
570
566
        try:
571
 
            fmt = self.control_files.controlfile('branch-format', 'r').read()
 
567
            fmt = self.control_files.get_utf8('branch-format').read()
572
568
        except NoSuchFile:
573
569
            raise NotBranchError(path=self.base)
574
570
        mutter("got branch format %r", fmt)
673
669
            mutter("cache hit for revision-history in %s", self)
674
670
            return list(history)
675
671
        history = [l.rstrip('\r\n') for l in
676
 
                self.control_files.controlfile('revision-history', 'r').readlines()]
 
672
                self.control_files.get_utf8('revision-history').readlines()]
677
673
        transaction.map.add_revision_history(history)
678
674
        # this call is disabled because revision_history is 
679
675
        # not really an object yet, and the transaction is for objects.
758
754
        _locs = ['parent', 'pull', 'x-pull']
759
755
        for l in _locs:
760
756
            try:
761
 
                return self.control_files.controlfile(l, 'r').read().strip('\n')
 
757
                return self.control_files.get_utf8(l).read().strip('\n')
762
758
            except NoSuchFile:
763
759
                pass
764
760
        return None
778
774
    def set_parent(self, url):
779
775
        """See Branch.set_parent."""
780
776
        # TODO: Maybe delete old location files?
781
 
        from bzrlib.atomicfile import AtomicFile
782
 
        f = AtomicFile(self.control_files.controlfilename('parent'))
783
 
        try:
784
 
            f.write(url + '\n')
785
 
            f.commit()
786
 
        finally:
787
 
            f.close()
 
777
        # URLs should never be unicode, even on the local fs,
 
778
        # FIXUP this and get_parent in a future branch format bump:
 
779
        # read and rewrite the file, and have the new format code read
 
780
        # using .get not .get_utf8. RBC 20060125
 
781
        self.control_files.put_utf8('parent', url + '\n')
788
782
 
789
783
    def tree_config(self):
790
784
        return TreeConfig(self)