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.
--- 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