Update on pull -u when heads were closed (fixes issue666).
authorThomas Arendsen Hein <thomas@intevation.de>
Mon, 06 Aug 2007 20:25:50 +0200
changeset 5080 73fdc8bd3ed8
parent 5079 04c1474ccddd
child 5081 ea7b982b6c08
child 5125 90be02035993
Update on pull -u when heads were closed (fixes issue666). Patch written by Benoit Boissinot. This should probably be improved in the future to handle long-living branches, as joining two "other" heads will switch to that new head. But this is not a new problem, as adding to the "other" head would have switched to that new head, too.
mercurial/commands.py
tests/test-pull-update
tests/test-pull-update.out
--- a/mercurial/commands.py	Thu Jul 05 19:47:04 2007 -0700
+++ b/mercurial/commands.py	Mon Aug 06 20:25:50 2007 +0200
@@ -2024,7 +2024,7 @@
     if modheads == 0:
         return
     if optupdate:
-        if modheads == 1:
+        if modheads <= 1:
             return hg.update(repo, None)
         else:
             ui.status(_("not updating, since new heads added\n"))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-pull-update	Mon Aug 06 20:25:50 2007 +0200
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+
+hg init t
+cd t
+echo 1 > foo
+hg ci -Am m
+
+cd ..
+hg clone t tt
+cd tt
+echo 1.1 > foo
+hg ci -Am m
+
+cd ../t
+echo 1.2 > foo
+hg ci -Am m
+echo % should fail
+hg pull -u ../tt
+
+cd ../tt
+echo % should fail
+hg pull -u ../t
+HGMERGE=true hg merge
+hg ci -mm
+
+cd ../t
+echo % should work
+hg pull -u ../tt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-pull-update.out	Mon Aug 06 20:25:50 2007 +0200
@@ -0,0 +1,31 @@
+adding foo
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% should fail
+pulling from ../tt
+searching for changes
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 1 changes to 1 files (+1 heads)
+not updating, since new heads added
+(run 'hg heads' to see heads, 'hg merge' to merge)
+% should fail
+pulling from ../t
+searching for changes
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 1 changes to 1 files (+1 heads)
+not updating, since new heads added
+(run 'hg heads' to see heads, 'hg merge' to merge)
+merging foo
+0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+(branch merge, don't forget to commit)
+% should work
+pulling from ../tt
+searching for changes
+adding changesets
+adding manifests
+adding file changes
+added 1 changesets with 1 changes to 1 files (-1 heads)
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved