~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branch.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-05-07 11:50:28 UTC
  • mfrom: (5147.4.7 more-colo)
  • Revision ID: pqm@pqm.ubuntu.com-20100507115028-tuuxmnormm8oetw6
(vila, for jelmer) Pass the colocated branch name along in more places,
        add extra tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1346
1346
        """
1347
1347
        # XXX: Fix the bzrdir API to allow getting the branch back from the
1348
1348
        # clone call. Or something. 20090224 RBC/spiv.
 
1349
        # XXX: Should this perhaps clone colocated branches as well, 
 
1350
        # rather than just the default branch? 20100319 JRV
1349
1351
        if revision_id is None:
1350
1352
            revision_id = self.last_revision()
1351
1353
        dir_to = self.bzrdir.clone_on_transport(to_transport,
1521
1523
        """Return the current default format."""
1522
1524
        return klass._default_format
1523
1525
 
1524
 
    def get_reference(self, a_bzrdir):
 
1526
    def get_reference(self, a_bzrdir, name=None):
1525
1527
        """Get the target reference of the branch in a_bzrdir.
1526
1528
 
1527
1529
        format probing must have been completed before calling
1529
1531
        in a_bzrdir is correct.
1530
1532
 
1531
1533
        :param a_bzrdir: The bzrdir to get the branch data from.
 
1534
        :param name: Name of the colocated branch to fetch
1532
1535
        :return: None if the branch is not a reference branch.
1533
1536
        """
1534
1537
        return None
1535
1538
 
1536
1539
    @classmethod
1537
 
    def set_reference(self, a_bzrdir, to_branch):
 
1540
    def set_reference(self, a_bzrdir, name, to_branch):
1538
1541
        """Set the target reference of the branch in a_bzrdir.
1539
1542
 
1540
1543
        format probing must have been completed before calling
1542
1545
        in a_bzrdir is correct.
1543
1546
 
1544
1547
        :param a_bzrdir: The bzrdir to set the branch reference for.
 
1548
        :param name: Name of colocated branch to set, None for default
1545
1549
        :param to_branch: branch that the checkout is to reference
1546
1550
        """
1547
1551
        raise NotImplementedError(self.set_reference)
2157
2161
        """See BranchFormat.get_format_description()."""
2158
2162
        return "Checkout reference format 1"
2159
2163
 
2160
 
    def get_reference(self, a_bzrdir):
 
2164
    def get_reference(self, a_bzrdir, name=None):
2161
2165
        """See BranchFormat.get_reference()."""
2162
 
        transport = a_bzrdir.get_branch_transport(None)
 
2166
        transport = a_bzrdir.get_branch_transport(None, name=name)
2163
2167
        return transport.get_bytes('location')
2164
2168
 
2165
 
    def set_reference(self, a_bzrdir, to_branch):
 
2169
    def set_reference(self, a_bzrdir, name, to_branch):
2166
2170
        """See BranchFormat.set_reference()."""
2167
 
        transport = a_bzrdir.get_branch_transport(None)
 
2171
        transport = a_bzrdir.get_branch_transport(None, name=name)
2168
2172
        location = transport.put_bytes('location', to_branch.base)
2169
2173
 
2170
2174
    def initialize(self, a_bzrdir, name=None, target_branch=None):
2221
2225
                raise AssertionError("wrong format %r found for %r" %
2222
2226
                    (format, self))
2223
2227
        if location is None:
2224
 
            location = self.get_reference(a_bzrdir)
 
2228
            location = self.get_reference(a_bzrdir, name)
2225
2229
        real_bzrdir = bzrdir.BzrDir.open(
2226
2230
            location, possible_transports=possible_transports)
2227
2231
        result = real_bzrdir.open_branch(name=name,