Rev 3554: (mbp) stacking post-merge review tweaks in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Thu Jul 17 09:29:53 BST 2008


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 3554
revision-id:pqm at pqm.ubuntu.com-20080717082940-zdwz5cqhdoot1swx
parent: pqm at pqm.ubuntu.com-20080717073312-reglpowwyo671081
parent: mbp at sourcefrog.net-20080717080025-bd9k6gpkkkntipwr
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2008-07-17 09:29:40 +0100
message:
  (mbp) stacking post-merge review tweaks
modified:
  bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
  bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
    ------------------------------------------------------------
    revno: 3549.1.4
    revision-id:mbp at sourcefrog.net-20080717080025-bd9k6gpkkkntipwr
    parent: mbp at sourcefrog.net-20080717060008-ulu4d4h8b57604yb
    committer: Martin Pool <mbp at sourcefrog.net>
    branch nick: stacking
    timestamp: Thu 2008-07-17 18:00:25 +1000
    message:
      Branching a stacked branch should not automatically turn on stacking
    modified:
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/tests/blackbox/test_branch.py test_branch.py-20060524161337-noms9gmcwqqrfi8y-1
=== modified file 'bzrlib/bzrdir.py'
--- a/bzrlib/bzrdir.py	2008-07-16 07:30:18 +0000
+++ b/bzrlib/bzrdir.py	2008-07-17 08:00:25 +0000
@@ -1059,11 +1059,9 @@
             if stacked:
                 stacked_branch_url = self.root_transport.base
             else:
-                try:
-                    stacked_branch_url = source_branch.get_stacked_on_url()
-                except (errors.NotStacked, errors.UnstackableBranchFormat,
-                    errors.UnstackableRepositoryFormat):
-                    stacked_branch_url = None
+                # if a stacked branch wasn't requested, we don't create one
+                # even if the origin was stacked
+                stacked_branch_url = None
         except errors.NotBranchError:
             source_branch = None
             try:

=== modified file 'bzrlib/tests/blackbox/test_branch.py'
--- a/bzrlib/tests/blackbox/test_branch.py	2008-07-15 05:18:31 +0000
+++ b/bzrlib/tests/blackbox/test_branch.py	2008-07-17 08:00:25 +0000
@@ -19,7 +19,7 @@
 
 import os
 
-from bzrlib import (branch, bzrdir, repository)
+from bzrlib import (branch, bzrdir, errors, repository)
 from bzrlib.repofmt.knitrepo import RepositoryFormatKnit1
 from bzrlib.tests.blackbox import ExternalBase
 from bzrlib.tests import HardlinkFeature
@@ -130,7 +130,13 @@
         repo = bzrdir.BzrDir.open(repo_path).open_repository()
         self.assertFalse(repo.has_revision(revid))
 
-    def test_branch_stacked_branch_also_stacked_same_reference(self):
+    def assertRevisionsInBranchRepository(self, revid_list, branch_path):
+        repo = branch.Branch.open(branch_path).repository
+        self.assertEqual(set(revid_list),
+            repo.has_revisions(revid_list))
+
+    def test_branch_stacked_branch_not_stacked(self):
+        """Branching a stacked branch is not stacked by default"""
         # We have a mainline
         trunk_tree = self.make_branch_and_tree('target',
             format='development')
@@ -145,10 +151,36 @@
         # mainline.
         out, err = self.run_bzr(['branch', 'branch', 'newbranch'])
         self.assertEqual('', out)
+        self.assertEqual('Branched 1 revision(s).\n',
+            err)
+        self.assertRaises(errors.NotStacked,
+            bzrdir.BzrDir.open('newbranch').open_branch().get_stacked_on_url)
+
+    def test_branch_stacked_branch_stacked(self):
+        """Asking to stack on a stacked branch does work"""
+        # We have a mainline
+        trunk_tree = self.make_branch_and_tree('target',
+            format='development')
+        trunk_revid = trunk_tree.commit('mainline')
+        # and a branch from it which is stacked
+        branch_tree = self.make_branch_and_tree('branch',
+            format='development')
+        branch_tree.branch.set_stacked_on_url(trunk_tree.branch.base)
+        # with some work on it
+        branch_revid = branch_tree.commit('moar work plz')
+        # you can chain branches on from there
+        out, err = self.run_bzr(['branch', 'branch', '--stacked', 'branch2'])
+        self.assertEqual('', out)
         self.assertEqual('Created new stacked branch referring to %s.\n' %
-            trunk_tree.branch.base, err)
-        self.check_shallow_branch(branch_tree.last_revision(),
-            trunk_tree.branch.base)
+            branch_tree.branch.base, err)
+        self.assertEqual(branch_tree.branch.base,
+            branch.Branch.open('branch2').get_stacked_on_url())
+        branch2_tree = WorkingTree.open('branch2')
+        branch2_revid = branch2_tree.commit('work on second stacked branch')
+        self.assertRevisionInRepository('branch2', branch2_revid)
+        self.assertRevisionsInBranchRepository(
+            [trunk_revid, branch_revid, branch2_revid],
+            'branch2')
 
     def test_branch_stacked(self):
         # We have a mainline




More information about the bazaar-commits mailing list