changeset 5097:73fdc8bd3ed8

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.
author Thomas Arendsen Hein <thomas@intevation.de>
date Mon, 06 Aug 2007 20:25:50 +0200
parents 04c1474ccddd
children 90be02035993 ea7b982b6c08
files mercurial/commands.py tests/test-pull-update tests/test-pull-update.out
diffstat 3 files changed, 61 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2024,7 +2024,7 @@ def postincoming(ui, repo, modheads, opt
     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"))
new file mode 100755
--- /dev/null
+++ b/tests/test-pull-update
@@ -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
new file mode 100644
--- /dev/null
+++ b/tests/test-pull-update.out
@@ -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