Rev 4111: Cherrypick the fix for merge --force onto 1.13.1 in lp:///~jameinel/bzr/1.13.1-merge-force

John Arbash Meinel john at arbash-meinel.com
Fri Mar 20 17:06:45 GMT 2009


At lp:///~jameinel/bzr/1.13.1-merge-force

------------------------------------------------------------
revno: 4111
revision-id: john at arbash-meinel.com-20090320170630-8liglk35g1wmao4d
parent: pqm at pqm.ubuntu.com-20090319062034-studmrl3a8zd41j4
author: Robert Collins <robertc at robertcollins.net>
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: 1.13.1-merge-force
timestamp: Fri 2009-03-20 12:06:30 -0500
message:
  Cherrypick the fix for merge --force onto 1.13.1
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2009-03-18 21:38:15 +0000
+++ b/NEWS	2009-03-20 17:06:30 +0000
@@ -12,15 +12,18 @@
 
   BUG FIXES:
 
+    * Change ``./bzr``'s ``_script_version`` to match ./bzrlib/__init__.py
+      version_info. (Bob Tanner, Martin Pool, #345232)
+
     * Distribution archives for 1.13 do not contain generated C extension
-      modules (Jean-Francois Roy, Bob Tanner #344465)
+      modules (Jean-Francois Roy, Bob Tanner, #344465)
 
     * GNU ChangeLog output can now be produced by bzr log --format
       gnu-changelog is incorrect (Deejay, Bob Tanner, Martin Pool, 
-      Robert Collins #343928)
-
-    * Change ./bzr's _script_version to match ./bzrlib/__init__.py
-      version_info. (Bob Tanner, Martin Pool #345232)
+      Robert Collins, #343928)
+
+    * ``merge --force`` works again. (Robert Collins, #342105)
+
 
 bzr 1.13 "paraskavedekatriaphobia" 2009-03-14
 ---------------------------------------------

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2009-03-10 02:44:32 +0000
+++ b/bzrlib/builtins.py	2009-03-20 17:06:30 +0000
@@ -3373,9 +3373,10 @@
             basis_tree = tree.revision_tree(tree.last_revision())
         except errors.NoSuchRevision:
             basis_tree = tree.basis_tree()
-        changes = tree.changes_from(basis_tree)
-        if changes.has_changed():
-            raise errors.UncommittedChanges(tree)
+        if not force:
+            changes = tree.changes_from(basis_tree)
+            if changes.has_changed():
+                raise errors.UncommittedChanges(tree)
 
         view_info = _get_view_info_for_change_reporter(tree)
         change_reporter = delta._ChangeReporter(

=== modified file 'bzrlib/tests/blackbox/test_merge.py'
--- a/bzrlib/tests/blackbox/test_merge.py	2009-02-27 08:37:19 +0000
+++ b/bzrlib/tests/blackbox/test_merge.py	2009-03-20 17:06:30 +0000
@@ -491,6 +491,18 @@
         out, err = self.run_bzr(['merge', '-d', 'a', 'b'])
         self.assertContainsRe(err, 'Warning: criss-cross merge encountered.')
 
+    def test_merge_force(self):
+        tree_a = self.make_branch_and_tree('a')
+        self.build_tree(['a/foo'])
+        tree_a.add(['foo'])
+        tree_a.commit('add file')
+        tree_b = tree_a.bzrdir.sprout('b').open_workingtree()
+        self.build_tree_contents([('a/foo', 'change 1')])
+        tree_a.commit('change file')
+        tree_b.merge_from_branch(tree_a.branch)
+        tree_a.commit('empty change to allow merge to run')
+        self.run_bzr(['merge', '../a', '--force'], working_dir='b')
+
     def test_merge_from_submit(self):
         tree_a = self.make_branch_and_tree('a')
         tree_b = tree_a.bzrdir.sprout('b').open_workingtree()



More information about the bazaar-commits mailing list