~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branch.py

[merge] jelmer

Show diffs side-by-side

added added

removed removed

Lines of Context:
297
297
        or on the mainline."""
298
298
        raise NotImplementedError('has_revision is abstract')
299
299
 
300
 
    def get_revision_xml_file(self, revision_id):
301
 
        """Return XML file object for revision object."""
302
 
        raise NotImplementedError('get_revision_xml_file is abstract')
303
 
 
304
300
    def get_revision_xml(self, revision_id):
305
301
        raise NotImplementedError('get_revision_xml is abstract')
306
302
 
493
489
        """
494
490
        raise NotImplementedError('move is abstract')
495
491
 
496
 
    def revert(self, filenames, old_tree=None, backups=True):
497
 
        """Restore selected files to the versions from a previous tree.
498
 
 
499
 
        backups
500
 
            If true (default) backups are made of files before
501
 
            they're renamed.
502
 
        """
503
 
        raise NotImplementedError('revert is abstract')
504
 
 
505
 
    def pending_merges(self):
506
 
        """Return a list of pending merges.
507
 
 
508
 
        These are revisions that have been merged into the working
509
 
        directory but not yet committed.
510
 
        """
511
 
        raise NotImplementedError('pending_merges is abstract')
512
 
 
513
 
    def add_pending_merge(self, *revision_ids):
514
 
        # TODO: Perhaps should check at this point that the
515
 
        # history of the revision is actually present?
516
 
        raise NotImplementedError('add_pending_merge is abstract')
517
 
 
518
 
    def set_pending_merges(self, rev_list):
519
 
        raise NotImplementedError('set_pending_merges is abstract')
520
 
 
521
492
    def get_parent(self):
522
493
        """Return the parent location of the branch.
523
494
 
989
960
                or self.revision_store.has_id(revision_id))
990
961
 
991
962
    @needs_read_lock
992
 
    def get_revision_xml_file(self, revision_id):
993
 
        """See Branch.get_revision_xml_file."""
 
963
    def _get_revision_xml_file(self, revision_id):
994
964
        if not revision_id or not isinstance(revision_id, basestring):
995
965
            raise InvalidRevisionId(revision_id=revision_id, branch=self)
996
966
        try:
998
968
        except (IndexError, KeyError):
999
969
            raise bzrlib.errors.NoSuchRevision(self, revision_id)
1000
970
 
1001
 
    #deprecated
1002
 
    get_revision_xml = get_revision_xml_file
1003
 
 
1004
971
    def get_revision_xml(self, revision_id):
1005
972
        """See Branch.get_revision_xml."""
1006
 
        return self.get_revision_xml_file(revision_id).read()
1007
 
 
 
973
        return self._get_revision_xml_file(revision_id).read()
1008
974
 
1009
975
    def get_revision(self, revision_id):
1010
976
        """See Branch.get_revision."""
1011
 
        xml_file = self.get_revision_xml_file(revision_id)
 
977
        xml_file = self._get_revision_xml_file(revision_id)
1012
978
 
1013
979
        try:
1014
980
            r = bzrlib.xml5.serializer_v5.read_revision(xml_file)
1123
1089
                else:
1124
1090
                    raise e
1125
1091
        
1126
 
    def revision_id_to_revno(self, revision_id):
1127
 
        """Given a revision id, return its revno"""
1128
 
        if revision_id is None:
1129
 
            return 0
1130
 
        history = self.revision_history()
1131
 
        try:
1132
 
            return history.index(revision_id) + 1
1133
 
        except ValueError:
1134
 
            raise bzrlib.errors.NoSuchRevision(self, revision_id)
1135
 
 
1136
 
    def get_rev_id(self, revno, history=None):
1137
 
        """Find the revision id of the specified revno."""
1138
 
        if revno == 0:
1139
 
            return None
1140
 
        if history is None:
1141
 
            history = self.revision_history()
1142
 
        elif revno <= 0 or revno > len(history):
1143
 
            raise bzrlib.errors.NoSuchRevision(self, revno)
1144
 
        return history[revno - 1]
1145
 
 
1146
1092
    def revision_tree(self, revision_id):
1147
1093
        """See Branch.revision_tree."""
1148
1094
        # TODO: refactor this to use an existing revision object
1312
1258
    def tree_config(self):
1313
1259
        return TreeConfig(self)
1314
1260
 
1315
 
    def check_revno(self, revno):
1316
 
        """\
1317
 
        Check whether a revno corresponds to any revision.
1318
 
        Zero (the NULL revision) is considered valid.
1319
 
        """
1320
 
        if revno != 0:
1321
 
            self.check_real_revno(revno)
1322
 
            
1323
 
    def check_real_revno(self, revno):
1324
 
        """\
1325
 
        Check whether a revno corresponds to a real revision.
1326
 
        Zero (the NULL revision) is considered invalid
1327
 
        """
1328
 
        if revno < 1 or revno > self.revno():
1329
 
            raise InvalidRevisionNumber(revno)
1330
 
        
1331
1261
    def sign_revision(self, revision_id, gpg_strategy):
1332
1262
        """See Branch.sign_revision."""
1333
1263
        plaintext = Testament.from_revision(self, revision_id).as_short_text()