# HG changeset patch # User Thomas Arendsen Hein # Date 1186424750 -7200 # Node ID 73fdc8bd3ed81be5b4764aafd4ad96c307035695 # Parent 04c1474ccddddf9f7fee5076574a76cf6382f181 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. diff --git a/mercurial/commands.py b/mercurial/commands.py --- 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")) diff --git a/tests/test-pull-update b/tests/test-pull-update 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 diff --git a/tests/test-pull-update.out b/tests/test-pull-update.out 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