[MERGE][#234229] Fix "bzr push --overwrite -r NNN"

Andrew Bennetts andrew at canonical.com
Fri May 23 08:50:57 BST 2008


Oops, I haven't done that for a while.  Really attached this time!

-Andrew

Andrew Bennetts wrote:
> Andrew Bennetts wrote:
> [...]
> > 
> > Hah.  I just experienced <https://bugs.launchpad.net/bzr/+bug/234229>: 
> > "bzr push -r NNN --overwrite" is broken at the moment.  The change I proposed
> > above fixes it.  I'm working on making a proper patch with test at the moment.
> > 
> > So it's not only simpler, it's less buggy.  I guess I shouldn't be surprised
> > that these two things go together!
> 
> The attached patch fixes that bug.  The fix is simple (just delete the cruft),
> and the test is also straightforward.
> 
> -Andrew.
> 
-------------- next part --------------
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: andrew.bennetts at canonical.com-20080523073305-\
#   3oxx653my3wn0469
# target_branch: http://bazaar-vcs.org/bzr/bzr.dev
# testament_sha1: 6c4ce764ccf5d5eebecb7edfb5494e1467669580
# timestamp: 2008-05-23 17:35:53 +1000
# source_branch: http://people.ubuntu.com/~andrew/bzr/unbreak-push-\
#   overwrite
# base_revision_id: pqm at pqm.ubuntu.com-20080522125310-lneifpa40hzg4lu2
# 
# Begin patch
=== modified file 'NEWS'
--- NEWS	2008-05-22 12:53:10 +0000
+++ NEWS	2008-05-23 07:33:05 +0000
@@ -39,6 +39,9 @@
 
   BUGFIXES:
 
+    * ``bzr push`` with both ``--overwrite`` and ``-r NNN`` options no longer
+      fails.  (Andrew Bennetts, #234229)
+      
     * Correctly track the base URL of a smart medium when using bzr+http://
       URLs, which was causing spurious "No repository present" errors with
       branches in shared repositories accessed over bzr+http.

=== modified file 'bzrlib/branch.py'
--- bzrlib/branch.py	2008-05-22 05:48:22 +0000
+++ bzrlib/branch.py	2008-05-23 07:17:40 +0000
@@ -1670,13 +1670,7 @@
         result.source_branch = self
         result.target_branch = target
         result.old_revno, result.old_revid = target.last_revision_info()
-        try:
-            target.update_revisions(self, stop_revision)
-        except errors.DivergedBranches:
-            if not overwrite:
-                raise
-        if overwrite:
-            target.set_revision_history(self.revision_history())
+        target.update_revisions(self, stop_revision, overwrite)
         result.tag_conflicts = self.tags.merge_to(target.tags, overwrite)
         result.new_revno, result.new_revid = target.last_revision_info()
         return result

=== modified file 'bzrlib/tests/branch_implementations/test_push.py'
--- bzrlib/tests/branch_implementations/test_push.py	2008-03-10 13:30:29 +0000
+++ bzrlib/tests/branch_implementations/test_push.py	2008-05-23 07:33:05 +0000
@@ -153,6 +153,22 @@
         self.assertEqual(tree.branch.last_revision(),
                          to_branch.last_revision())
 
+    def test_push_overwrite_of_non_tip_with_stop_revision(self):
+        """Combining the stop_revision and overwrite options works.
+        
+        This was <https://bugs.launchpad.net/bzr/+bug/234229>.
+        """
+        source = self.make_branch_and_tree('source')
+        target = self.make_branch('target')
+
+        source.commit('1st commit')
+        source.branch.push(target)
+        source.commit('2nd commit', rev_id='rev-2')
+        source.commit('3rd commit')
+
+        source.branch.push(target, stop_revision='rev-2', overwrite=True)
+        self.assertEqual('rev-2', target.last_revision())
+
 
 class TestPushHook(TestCaseWithBranch):
 

# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWYxdKLUABOlfgHQQWf///3//
/7D////wYAkvklAAAAlXswAAUAACSQjSnqeppk9RP0FPKeRqZDT01PUaG0jNGUA2p6NT1GhzCaA0
Bo0YRoMRpiZMTQYRoGQDJgcwmgNAaNGEaDEaYmTE0GEaBkAyYECpvVAaAAAAAAGhoAAAAAcwmgNA
aNGEaDEaYmTE0GEaBkAyYCSQmgAmCAg0ACmNAap+oxGTSeibQDSSG6CZJUKkquOXBbvm5F1DHdnv
Ghp9tT+Wcu+Z2q8YKoamvGVVHxge79sRRQwoDHSbnW4NrqxkiiZJEpGubB0hClw6M/bIowg9/57k
gUyAy5/3IVk2SMlwphmZhmWruFqPCQiMQau1OmmSErDXW8j4vMUYQhLw71Dtigc5++JxmCB2i1S5
J9NUSX+1VtqZon+/EikNd0kIuMbPGMbJo7zGIznLysDdpUcU0VNGBKJmD7ymln7eDlbq8SBRXxXk
2XHRNQ2oeT97n8klneNpSUY0GwgSMCPRyDFtVqzOboUoyev5JgvzA1p5kykvEWHPnY3qLmH46s+P
tu0Uk9TvEEHwF6Rc/qPqv76DnK3HHVckLlEa16RgvOVAcnkOMMaS+zxaqc7DqNE2v1ALkOg+qGEh
yzq80p5nXgakeErsueXsR/Bt4bN2LhznHXz18XxHMBPtqQHe42gtyIQdAcb0kFRQP7x0WGJjNxJA
OJWsFSiMay8RJUSiK0PBJ7xiqHzrcSCQ5OSScqSqqRD0VyfrKWltZOf5OWHtqRw1HWCvpPmR6sxO
YgMrnuc2UnYUI/NsBxq9egNLil6JTCmfMkcEQoTskOKCBYPoLnyfezgpBfGmRqyg5o1DtqchvrkX
SnIRHUApzzz0vuidtGpTsBUyEmvuhYTkCWAm4TcC02a2RSptI8SNP/ebbCKUTSVlBJxDXZO0Dit1
Aj+piYvNRiXlBpC49ZsfLZbslJYF1yghOAVC7ewnQ+4cOHFA4myHiMSdYTGWZWa6FCcoOMnMjTLS
f4wjhEauwRLq4isFYV4qpFqJdRAyMFMPIWzRjbDCUE/bCcJq88+7Mij+KHjywtxkNZgWq8qqecG1
H7/doyry0sn0gyRpZDxx50cJY8dICWzYNlUh5IUgs5JZBw4bqseQiirMoLNpEsqJBxspzU+mE0CU
lGNk1MaH3biR8bqhppbU+6kzjiYjxGgjUSRD0PESi+XDaXGZIR6wULWYtpe8EzysvICMyIJyiZlJ
RNPJSg/TbtrxNZPMcVRb8lbOnbC12hosMzoMCVljpNE01kCgmcRIk+4qvCOn5kpMaC5RnBdvcXYq
WZ1cHAyfAHl6mNFRuLp9RPKYlMw+hSFUpp9NDpzUUDiemoz21nsk/DM854E5PLQRYZXuyDNzIegc
ixF4iTAOaz2heMitgPtGDm4IEm4ZXFAMO5RsDJhhhyZQZzD3UG89qMRUPJBwSlpw8gOAXsRuO7zg
6zFivfkLOyg+jq1KGZkmZjSHKaLi9WvZ10SlYzG+a+OuaRivEyBYPgPBjn7bj4avUYF4fEWwgKbU
c/EaD8k4XXkHzK32cnLDRv2OH1nfYMu75+aYLAWRiOGdnXoHa6J1QFcxykROw5T2PPmLMLyUC248
LM6g/X9TAuPmHuuu5Di9HKfj/d4AqzgwLqz4ZIgVcDO8oYCCEaACAuZCoulZCIQNjTZdETVpb6h0
vBSHYMPIocP6DpynirGfPyTmA29BF0gxkKg7BEkDCccwCzWkWwmEWV4+BzJ/ODvumT3g4oAVhesE
lSL5H4mfXgjkjG8k9Ooyk3Bxk9kS0c49xA9pE8OE7zlMxjm4yUpLCxZgK7Pa3DuJBtzPbWTS98d6
H9L5bsEjXpzL5DEgOwO4087yUkngbgF9QFE186WDZiItM5Y6kJMmTECRrm4OabiMrsD3EFgOYJxT
kqBwZzlol5IdFS9ms/KdxYfzjVOihIU2i3bydK6vJHKOqTa9GyZmMBS8HSNk+/JtI1bx5tN/BRQe
az6FlU5ngeU1jakP+gdeDPGYY/D1+BrUoiKzJS04OnWYmgNzpoOIYkmOKIehFveuABZlA3rFzPQs
Z9eRT/o3OBOl1hSEUmJwtYa1khVBqGBCiIiP3Joo+jjYazSDjfpOYF0DEfJv6o0fXeWnQT+MUONJ
MWnK9HQf2vKuRbWSkQ6vsDm7oBg7jOZG0Sk4xUEfb/pOC5Dr6BhhhmTBFw5nuQms1HvgSY/+3GPc
jSBSxo6MAE5jx2HiClDA+xFKLi9Bq/OUJuDzCLoWcMP07jSSkxWIU4zHRvQL7BZpZji6VadS1AmB
cm5cWkd/Pff7yQ2CMNHN0yIFcgw8TpQejeKeXQGKNjS9RpCtH3TnOfBkhdSLfY5Gv9OMriTom7mv
SwrOUmDkAiB8pSZEnpENII1iOpwFLILKMpbJxDMY22hDTJgFEtIpMSQo3NuGigTh2KQq99ACylCM
UhmErEfAeB5auoF9OvbW3CCoIIS8OdwFIhUUGTgE8J+kGAwHCNtqX2HTAXflYBMahsHcQjdsNpPO
F1iKLGNpyG9BroROA178fwR75Q9oKgoBjOko3mRmFrxaLPZsmEdnLRq4WGeSAmKxGsRmBtYxeX3l
CS/pYPyGXmB6dmOFAf7EhSisfxpW6GSq0yXgdPJOSjIZg8KXJPJ2Bh+rew9vCbshTOOBhgFFucPA
+eRyQ3JWDD0azBERxcI3jJKCpQSUbWRzWhU3uYHMEZmKkiELCouK4MhhX8LGJMEspMjtEwW3Ylj4
1olBp2vI9HGzkFYa4j3WA4NGooxbQJWCrg4cpHA4BTOQUHVOkJ6Jz7YhKitHvm4Jj6Hq7Uc9G1b4
cofsXSI6iTPUBeZoLTJaj2fc+ApUnJCyGSF74881WvqyhwdPcIfBLi6yrDlEen1cgK8RiI2UkxqE
5ecQ84nmrgVwORxdgKopX/xdyRThQkIxdKLU


More information about the bazaar mailing list