~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branch.py

  • Committer: John Arbash Meinel
  • Date: 2011-05-26 08:05:45 UTC
  • mfrom: (5916 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5917.
  • Revision ID: john@arbash-meinel.com-20110526080545-5tprxfczyj4bfk0o
Merge bzr.dev 5916 and make sure the right patch is applied.

Show diffs side-by-side

added added

removed removed

Lines of Context:
454
454
            after. If None, the rest of history is included.
455
455
        :param stop_rule: if stop_revision_id is not None, the precise rule
456
456
            to use for termination:
 
457
 
457
458
            * 'exclude' - leave the stop revision out of the result (default)
458
459
            * 'include' - the stop revision is the last item in the result
459
460
            * 'with-merges' - include the stop revision and all of its
461
462
            * 'with-merges-without-common-ancestry' - filter out revisions 
462
463
              that are in both ancestries
463
464
        :param direction: either 'reverse' or 'forward':
 
465
 
464
466
            * reverse means return the start_revision_id first, i.e.
465
467
              start at the most recent revision and go backwards in history
466
468
            * forward returns tuples in the opposite order to reverse.
667
669
        raise errors.UnsupportedOperation(self.get_reference_info, self)
668
670
 
669
671
    @needs_write_lock
670
 
    def fetch(self, from_branch, last_revision=None):
 
672
    def fetch(self, from_branch, last_revision=None, limit=None):
671
673
        """Copy revisions from from_branch into this branch.
672
674
 
673
675
        :param from_branch: Where to copy from.
674
676
        :param last_revision: What revision to stop at (None for at the end
675
677
                              of the branch.
 
678
        :param limit: Optional rough limit of revisions to fetch
676
679
        :return: None
677
680
        """
678
 
        return InterBranch.get(from_branch, self).fetch(last_revision)
 
681
        return InterBranch.get(from_branch, self).fetch(last_revision, limit=limit)
679
682
 
680
683
    def get_bound_location(self):
681
684
        """Return the URL of the branch we are bound to.
774
777
        configured to check constraints on history, in which case this may not
775
778
        be permitted.
776
779
        """
777
 
        raise NotImplementedError(self.last_revision_info)
 
780
        raise NotImplementedError(self.set_last_revision_info)
778
781
 
779
782
    @needs_write_lock
780
783
    def generate_revision_history(self, revision_id, last_rev=None,
1417
1420
        :param to_location: The url to produce the checkout at
1418
1421
        :param revision_id: The revision to check out
1419
1422
        :param lightweight: If True, produce a lightweight checkout, otherwise,
1420
 
        produce a bound branch (heavyweight checkout)
 
1423
            produce a bound branch (heavyweight checkout)
1421
1424
        :param accelerator_tree: A tree which can be used for retrieving file
1422
1425
            contents more quickly than the revision tree, i.e. a workingtree.
1423
1426
            The revision tree will be used for cases where accelerator_tree's
1469
1472
 
1470
1473
    def reference_parent(self, file_id, path, possible_transports=None):
1471
1474
        """Return the parent branch for a tree-reference file_id
 
1475
 
1472
1476
        :param file_id: The file_id of the tree reference
1473
1477
        :param path: The path of the file_id in the tree
1474
1478
        :return: A branch associated with the file_id
1864
1868
 
1865
1869
 
1866
1870
class ChangeBranchTipParams(object):
1867
 
    """Object holding parameters passed to *_change_branch_tip hooks.
 
1871
    """Object holding parameters passed to `*_change_branch_tip` hooks.
1868
1872
 
1869
1873
    There are 5 fields that hooks may wish to access:
1870
1874
 
1902
1906
 
1903
1907
 
1904
1908
class BranchInitHookParams(object):
1905
 
    """Object holding parameters passed to *_branch_init hooks.
 
1909
    """Object holding parameters passed to `*_branch_init` hooks.
1906
1910
 
1907
1911
    There are 4 fields that hooks may wish to access:
1908
1912
 
1942
1946
 
1943
1947
 
1944
1948
class SwitchHookParams(object):
1945
 
    """Object holding parameters passed to *_switch hooks.
 
1949
    """Object holding parameters passed to `*_switch` hooks.
1946
1950
 
1947
1951
    There are 4 fields that hooks may wish to access:
1948
1952
 
3251
3255
        raise NotImplementedError(self.copy_content_into)
3252
3256
 
3253
3257
    @needs_write_lock
3254
 
    def fetch(self, stop_revision=None):
 
3258
    def fetch(self, stop_revision=None, limit=None):
3255
3259
        """Fetch revisions.
3256
3260
 
3257
3261
        :param stop_revision: Last revision to fetch
 
3262
        :param limit: Optional rough limit of revisions to fetch
3258
3263
        """
3259
3264
        raise NotImplementedError(self.fetch)
3260
3265
 
3298
3303
            self.source.tags.merge_to(self.target.tags)
3299
3304
 
3300
3305
    @needs_write_lock
3301
 
    def fetch(self, stop_revision=None):
 
3306
    def fetch(self, stop_revision=None, limit=None):
3302
3307
        if self.target.base == self.source.base:
3303
3308
            return (0, [])
3304
3309
        self.source.lock_read()
3309
3314
            fetch_spec_factory.source_repo = self.source.repository
3310
3315
            fetch_spec_factory.target_repo = self.target.repository
3311
3316
            fetch_spec_factory.target_repo_kind = fetch.TargetRepoKinds.PREEXISTING
 
3317
            fetch_spec_factory.limit = limit
3312
3318
            fetch_spec = fetch_spec_factory.make_fetch_spec()
3313
3319
            return self.target.repository.fetch(self.source.repository,
3314
3320
                fetch_spec=fetch_spec)
3393
3399
 
3394
3400
        This is the basic concrete implementation of push()
3395
3401
 
3396
 
        :param _override_hook_source_branch: If specified, run
3397
 
        the hooks passing this Branch as the source, rather than self.
3398
 
        This is for use of RemoteBranch, where push is delegated to the
3399
 
        underlying vfs-based Branch.
 
3402
        :param _override_hook_source_branch: If specified, run the hooks
 
3403
            passing this Branch as the source, rather than self.  This is for
 
3404
            use of RemoteBranch, where push is delegated to the underlying
 
3405
            vfs-based Branch.
3400
3406
        """
3401
3407
        if lossy:
3402
3408
            raise errors.LossyPushToSameVCS(self.source, self.target)