diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2012,7 +2012,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/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -227,6 +227,8 @@ def run(cmd): ret = proc.wait() if ret == 0: ret = signal.SIGTERM << 8 + output += ("\n### Abort: timeout after %d seconds.\n" + % options.timeout) return ret, splitnewlines(output) def run_one(test): 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