~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branch.py

  • Committer: Robert Collins
  • Date: 2006-03-05 00:19:31 UTC
  • mto: This revision was merged to the branch mainline in revision 1590.
  • Revision ID: robertc@robertcollins.net-20060305001931-051a5898ad439113
update updates working tree and branch together.

Show diffs side-by-side

added added

removed removed

Lines of Context:
412
412
    def set_parent(self, url):
413
413
        raise NotImplementedError('set_parent is abstract')
414
414
 
 
415
    @needs_write_lock
 
416
    def update(self):
 
417
        """Synchronise this branch with the master branch if any. 
 
418
 
 
419
        :return: None or the last_revision pivoted out during the update.
 
420
        """
 
421
        return None
 
422
 
415
423
    def check_revno(self, revno):
416
424
        """\
417
425
        Check whether a revno corresponds to any revision.
1104
1112
    @needs_write_lock
1105
1113
    def pull(self, source, overwrite=False, stop_revision=None):
1106
1114
        """Updates branch.pull to be bound branch aware."""
1107
 
        # TODO: jam 20051230 This does work, in that 'bzr pull'
1108
 
        #       will update the master branch before updating the
1109
 
        #       local branch. However, 'source' can also already
1110
 
        #       be the master branch. Which means that we are
1111
 
        #       asking it to update from itself, before we continue.
1112
 
        #       This probably causes double downloads, etc.
1113
 
        #       So we probably want to put in an explicit check
1114
 
        #       of whether source is already the master branch.
1115
1115
        bound_location = self.get_bound_location()
1116
1116
        if source.base != bound_location:
1117
1117
            # not pulling from master, so we need to update master.
1212
1212
        """If bound, unbind"""
1213
1213
        return self.set_bound_location(None)
1214
1214
 
 
1215
    @needs_write_lock
 
1216
    def update(self):
 
1217
        """Synchronise this branch with the master branch if any. 
 
1218
 
 
1219
        :return: None or the last_revision that was pivoted out during the
 
1220
                 update.
 
1221
        """
 
1222
        master = self.get_master_branch()
 
1223
        if master is not None:
 
1224
            old_tip = self.last_revision()
 
1225
            self.pull(master, overwrite=True)
 
1226
            if old_tip == self.last_revision():
 
1227
                return None
 
1228
            return old_tip
 
1229
        return None
 
1230
 
1215
1231
 
1216
1232
class BranchTestProviderAdapter(object):
1217
1233
    """A tool to generate a suite testing multiple branch formats at once.