Rev 5862: Don't set submit_branch if it's not yet set when merging. in file:///home/vila/src/bzr/bugs/782169-remember-better-or-not/

Vincent Ladeuil v.ladeuil+lp at free.fr
Sat May 14 14:09:09 UTC 2011


At file:///home/vila/src/bzr/bugs/782169-remember-better-or-not/

------------------------------------------------------------
revno: 5862
revision-id: v.ladeuil+lp at free.fr-20110514140909-evshhzlg3ib8mp06
parent: pqm at pqm.ubuntu.com-20110513195932-upsvlswzyvwodep0
fixes bug(s): https://launchpad.net/bugs/782169
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: 782169-remember-better-or-not
timestamp: Sat 2011-05-14 16:09:09 +0200
message:
  Don't set submit_branch if it's not yet set when merging.
-------------- next part --------------
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2011-05-03 13:53:46 +0000
+++ b/bzrlib/builtins.py	2011-05-14 14:09:09 +0000
@@ -3931,7 +3931,7 @@
     ]
 
     def run(self, location=None, revision=None, force=False,
-            merge_type=None, show_base=False, reprocess=None, remember=False,
+            merge_type=None, show_base=False, reprocess=None, remember=None,
             uncommitted=False, pull=False,
             directory=None,
             preview=False,
@@ -4114,9 +4114,15 @@
         if other_revision_id is None:
             other_revision_id = _mod_revision.ensure_null(
                 other_branch.last_revision())
-        # Remember where we merge from
-        if ((remember or tree.branch.get_submit_branch() is None) and
-             user_location is not None):
+        # Remember where we merge from. We need to remember if:
+        # - user specify a location (and we don't merge from the parent
+        #   branch)
+        # - user ask to remember or there is no previous location set to merge
+        #   from and user didn't ask to *not* remember
+        if (user_location is not None
+            and ((remember
+                  or (remember is None
+                      and tree.branch.get_submit_branch() is None)))):
             tree.branch.set_submit_branch(other_branch.base)
         # Merge tags (but don't set them in the master branch yet, the user
         # might revert this merge).  Commit will propagate them.

=== modified file 'bzrlib/tests/blackbox/test_merge.py'
--- a/bzrlib/tests/blackbox/test_merge.py	2011-05-13 12:51:05 +0000
+++ b/bzrlib/tests/blackbox/test_merge.py	2011-05-14 14:09:09 +0000
@@ -555,6 +555,20 @@
         self.assertEqual(tree_b.branch.get_submit_branch(),
                          tree_a.bzrdir.root_transport.base)
 
+    def test_no_remember_dont_set_submit(self):
+        tree_a = self.make_branch_and_tree('a')
+        tree_b = tree_a.bzrdir.sprout('b').open_workingtree()
+        self.assertIs(tree_b.branch.get_submit_branch(), None)
+
+        # Remember should not happen if using default from parent
+        out, err = self.run_bzr(['merge', '-d', 'b', '--no-remember'])
+        self.assertEquals(None, tree_b.branch.get_submit_branch())
+
+        # Remember should not happen if user supplies location but ask for not
+        # remembering it
+        out, err = self.run_bzr(['merge', '-d', 'b', '--no-remember', 'a'])
+        self.assertEqual(None, tree_b.branch.get_submit_branch())
+
     def test_weave_cherrypick(self):
         this_tree = self.make_branch_and_tree('this')
         self.build_tree_contents([('this/file', "a\n")])

=== modified file 'doc/en/release-notes/bzr-2.4.txt'
--- a/doc/en/release-notes/bzr-2.4.txt	2011-05-13 14:02:14 +0000
+++ b/doc/en/release-notes/bzr-2.4.txt	2011-05-14 14:09:09 +0000
@@ -198,6 +198,9 @@
   are only small changes to a large tree.
   (Ian Clatworthy, John Arbash Meinel, #380202)
 
+* ``bzr merge --no-remember location`` will not set ``submit_branch`` anymore
+  if it is *not* yet set. (Vincent Ladeuil, #782169)
+
 * Lazy hooks are now reset between test runs. (Jelmer Vernooij, #745566)
 
 * ``bzrlib.merge.Merge`` now calls ``iter_changes`` without



More information about the bazaar-commits mailing list