~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branch.py

Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
138
138
        """
139
139
        return bzrdir.BzrDir.create_standalone_workingtree(base).branch
140
140
 
 
141
    @deprecated_function(zero_eight)
141
142
    def setup_caching(self, cache_root):
142
143
        """Subclasses that care about caching should override this, and set
143
144
        up cached stores located under cache_root.
 
145
        
 
146
        NOTE: This is unused.
144
147
        """
145
 
        # seems to be unused, 2006-01-13 mbp
146
 
        warn('%s is deprecated' % self.setup_caching)
147
 
        self.cache_root = cache_root
 
148
        pass
148
149
 
149
150
    def get_config(self):
150
151
        return bzrlib.config.BranchConfig(self)
293
294
 
294
295
    def revision_history(self):
295
296
        """Return sequence of revision hashes on to this branch."""
296
 
        raise NotImplementedError('revision_history is abstract')
 
297
        raise NotImplementedError(self.revision_history)
297
298
 
298
299
    def revno(self):
299
300
        """Return current revision number for this branch.
580
581
            mainline_parent_id = revision_id
581
582
        return BranchCheckResult(self)
582
583
 
 
584
    def _get_checkout_format(self):
 
585
        """Return the most suitable metadir for a checkout of this branch.
 
586
        Weaves are used if this branch's repostory uses weaves.
 
587
        """
 
588
        if isinstance(self.bzrdir, bzrdir.BzrDirPreSplitOut):
 
589
            from bzrlib import repository
 
590
            format = bzrdir.BzrDirMetaFormat1()
 
591
            format.repository_format = repository.RepositoryFormat7()
 
592
        else:
 
593
            format = self.repository.bzrdir.cloning_metadir()
 
594
        return format
 
595
 
583
596
    def create_checkout(self, to_location, revision_id=None, 
584
597
                        lightweight=False):
585
598
        """Create a checkout of a branch.
590
603
        produce a bound branch (heavyweight checkout)
591
604
        :return: The tree of the created checkout
592
605
        """
 
606
        t = transport.get_transport(to_location)
 
607
        try:
 
608
            t.mkdir('.')
 
609
        except errors.FileExists:
 
610
            pass
593
611
        if lightweight:
594
 
            t = transport.get_transport(to_location)
595
 
            try:
596
 
                t.mkdir('.')
597
 
            except errors.FileExists:
598
 
                pass
599
612
            checkout = bzrdir.BzrDirMetaFormat1().initialize_on_transport(t)
600
613
            BranchReferenceFormat().initialize(checkout, self)
601
614
        else:
 
615
            format = self._get_checkout_format()
602
616
            checkout_branch = bzrdir.BzrDir.create_branch_convenience(
603
 
                to_location, force_new_tree=False)
 
617
                to_location, force_new_tree=False, format=format)
604
618
            checkout = checkout_branch.bzrdir
605
619
            checkout_branch.bind(self)
606
620
            if revision_id is not None:
958
972
 
959
973
    __repr__ = __str__
960
974
 
961
 
    def __del__(self):
962
 
        # TODO: It might be best to do this somewhere else,
963
 
        # but it is nice for a Branch object to automatically
964
 
        # cache it's information.
965
 
        # Alternatively, we could have the Transport objects cache requests
966
 
        # See the earlier discussion about how major objects (like Branch)
967
 
        # should never expect their __del__ function to run.
968
 
        # XXX: cache_root seems to be unused, 2006-01-13 mbp
969
 
        if hasattr(self, 'cache_root') and self.cache_root is not None:
970
 
            try:
971
 
                osutils.rmtree(self.cache_root)
972
 
            except:
973
 
                pass
974
 
            self.cache_root = None
975
 
 
976
975
    def _get_base(self):
977
976
        return self._base
978
977
 
1187
1186
        try:
1188
1187
            old_count = len(self.revision_history())
1189
1188
            try:
1190
 
                self.update_revisions(source,stop_revision)
 
1189
                self.update_revisions(source, stop_revision)
1191
1190
            except DivergedBranches:
1192
1191
                if not overwrite:
1193
1192
                    raise