# HG changeset patch # User Matt Mackall # Date 2012-01-30 22:01:54 # Node ID 093b75c7b44bf02611691e3bb27f135b71eb33ee # Parent dad96e7520795928e0e61c8c4c52e1d518d19c60 pull: return 1 when no changes found (BC) Currently we have the following return codes if nothing is found: commit incoming outgoing pull push intended 1 1 1 1 1 documented 1 1 1 0 1 actual 1 1 1 0 1 This makes pull agree with the rest of the table and makes it easy to detect "nothing was pulled" in scripts. diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -4261,7 +4261,7 @@ def phase(ui, repo, *revs, **opts): def postincoming(ui, repo, modheads, optupdate, checkout): if modheads == 0: - return + return 1 if optupdate: movemarkfrom = repo['.'].node() try: @@ -4312,7 +4312,8 @@ def pull(ui, repo, source="default", **o If SOURCE is omitted, the 'default' path will be used. See :hg:`help urls` for more information. - Returns 0 on success, 1 if an update had unresolved files. + Returns 0 on success, 1 if no changes found or an update had + unresolved files. """ source, branches = hg.parseurl(ui.expandpath(source), opts.get('branch')) other = hg.peer(repo, opts, source) diff --git a/mercurial/help/glossary.txt b/mercurial/help/glossary.txt --- a/mercurial/help/glossary.txt +++ b/mercurial/help/glossary.txt @@ -366,8 +366,8 @@ Root repositories have only a single root changeset. Secret - Secret changesets are changesets that may not be shared via push - or pull. See :hg:`help phases`. + Changesets in the secret phase may not be shared via push, pull, + or clone. See :hg:`help phases`. Tag An alternative name given to a changeset. Tags can be used in all diff --git a/tests/test-bookmarks-pushpull.t b/tests/test-bookmarks-pushpull.t --- a/tests/test-bookmarks-pushpull.t +++ b/tests/test-bookmarks-pushpull.t @@ -44,6 +44,7 @@ import bookmark by name pulling from ../a no changes found importing bookmark X + [1] $ hg bookmark X 0:4e3505fd9583 Y 0:4e3505fd9583 @@ -184,6 +185,7 @@ hgweb no changes found divergent bookmark X stored as X@1 importing bookmark Z + [1] $ hg clone http://localhost:$HGPORT/ cloned-bookmarks requesting all changes adding changesets diff --git a/tests/test-bundle.t b/tests/test-bundle.t --- a/tests/test-bundle.t +++ b/tests/test-bundle.t @@ -85,6 +85,7 @@ Pull full.hg into test (using --cwd) pulling from ../full.hg searching for changes no changes found + [1] Pull full.hg into empty (using --cwd) @@ -119,6 +120,7 @@ Pull full.hg into test (using -R) pulling from full.hg searching for changes no changes found + [1] Pull full.hg into empty (using -R) @@ -126,6 +128,7 @@ Pull full.hg into empty (using -R) pulling from full.hg searching for changes no changes found + [1] Rollback empty diff --git a/tests/test-convert.t b/tests/test-convert.t --- a/tests/test-convert.t +++ b/tests/test-convert.t @@ -293,6 +293,7 @@ pulling from ../a searching for changes no changes found + [1] $ touch bogusfile should fail diff --git a/tests/test-hook.t b/tests/test-hook.t --- a/tests/test-hook.t +++ b/tests/test-hook.t @@ -196,6 +196,7 @@ listkeys hook listkeys hook: HG_NAMESPACE=phases HG_VALUES={'cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b': '1', 'publishing': 'True'} listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'} importing bookmark bar + [1] $ cd ../a test that prepushkey can prevent incoming keys diff --git a/tests/test-https.t b/tests/test-https.t --- a/tests/test-https.t +++ b/tests/test-https.t @@ -160,6 +160,7 @@ cacert configured in local repo pulling from https://localhost:$HGPORT/ searching for changes no changes found + [1] $ mv copy-pull/.hg/hgrc.bu copy-pull/.hg/hgrc cacert configured globally, also testing expansion of environment @@ -171,11 +172,13 @@ variables in the filename pulling from https://localhost:$HGPORT/ searching for changes no changes found + [1] $ P=`pwd` hg -R copy-pull pull --insecure warning: localhost certificate with fingerprint 91:4f:1a:ff:87:24:9c:09:b6:85:9b:88:b1:90:6d:30:75:64:91:ca not verified (check hostfingerprints or web.cacerts config setting) pulling from https://localhost:$HGPORT/ searching for changes no changes found + [1] cacert mismatch @@ -188,6 +191,7 @@ cacert mismatch pulling from https://127.0.0.1:$HGPORT/ searching for changes no changes found + [1] $ hg -R copy-pull pull --config web.cacerts=pub-other.pem abort: error: *:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (glob) [255] @@ -196,6 +200,7 @@ cacert mismatch pulling from https://localhost:$HGPORT/ searching for changes no changes found + [1] Test server cert which isn't valid yet @@ -255,6 +260,7 @@ Test unvalidated https through proxy pulling from https://localhost:$HGPORT/ searching for changes no changes found + [1] Test https with cacert and fingerprint through proxy @@ -262,10 +268,12 @@ Test https with cacert and fingerprint t pulling from https://localhost:$HGPORT/ searching for changes no changes found + [1] $ http_proxy=http://localhost:$HGPORT1/ hg -R copy-pull pull https://127.0.0.1:$HGPORT/ pulling from https://127.0.0.1:$HGPORT/ searching for changes no changes found + [1] Test https with cert problems through proxy diff --git a/tests/test-mq-qimport-fail-cleanup.t b/tests/test-mq-qimport-fail-cleanup.t --- a/tests/test-mq-qimport-fail-cleanup.t +++ b/tests/test-mq-qimport-fail-cleanup.t @@ -34,6 +34,7 @@ valid patches before fail added to serie b.patch $ hg pull -q -r 0 . # update phase + [1] $ hg qimport -r 0 abort: revision 0 is not mutable (see "hg help phases" for details) diff --git a/tests/test-pending.t b/tests/test-pending.t --- a/tests/test-pending.t +++ b/tests/test-pending.t @@ -102,6 +102,7 @@ test python hook rollback completed abort: pretxnchangegroup hook failed pull 0000000000000000000000000000000000000000 + [1] test external hook @@ -117,3 +118,4 @@ test external hook rollback completed abort: pretxnchangegroup hook exited with status 1 pull 0000000000000000000000000000000000000000 + [1] diff --git a/tests/test-phases-exchange.t b/tests/test-phases-exchange.t --- a/tests/test-phases-exchange.t +++ b/tests/test-phases-exchange.t @@ -136,6 +136,7 @@ update must update phase of common chang pulling from ../alpha searching for changes no changes found + [1] $ hgph o 4 public a-D - b555f63b6063 | @@ -343,6 +344,7 @@ pulling back into original repo pulling from ../alpha searching for changes no changes found + [1] $ hgph @ 6 public n-B - 145e75495359 | @@ -775,6 +777,7 @@ Discovery locally secret changeset on a pulling from ../mu searching for changes no changes found + [1] $ hgph @ 11 draft A-secret - 435b5d83910c | @@ -927,6 +930,7 @@ same over the wire pulling from http://localhost:$HGPORT/ searching for changes no changes found + [1] $ hg phase f54f1bb90ff3 2: draft diff --git a/tests/test-pull-r.t b/tests/test-pull-r.t --- a/tests/test-pull-r.t +++ b/tests/test-pull-r.t @@ -100,4 +100,5 @@ Pull multiple revisions with update: This used to abort: received changelog group is empty: $ hg pull -qr 1 ../repo + [1] diff --git a/tests/test-pull.t b/tests/test-pull.t --- a/tests/test-pull.t +++ b/tests/test-pull.t @@ -48,6 +48,7 @@ pulling from http://foo@localhost:$HGPORT/ searching for changes no changes found + [1] $ hg rollback --dry-run --verbose repository tip rolled back to revision -1 (undo pull: http://foo:***@localhost:$HGPORT/) @@ -77,6 +78,7 @@ Test 'file:' uri handling: [255] $ hg pull -q file:../test + [1] It's tricky to make file:// URLs working on every platform with regular shell commands. @@ -88,3 +90,4 @@ regular shell commands. $ URL=`python -c "import os; print 'file://localhost' + ('/' + os.getcwd().replace(os.sep, '/')).replace('//', '/') + '/../test'"` $ hg pull -q "$URL" + [1] diff --git a/tests/test-ssh.t b/tests/test-ssh.t --- a/tests/test-ssh.t +++ b/tests/test-ssh.t @@ -80,6 +80,7 @@ empty default pull pulling from ssh://user@dummy/remote searching for changes no changes found + [1] local change @@ -198,6 +199,7 @@ test pushkeys and bookmarks no changes found updating bookmark foo importing bookmark foo + [1] $ hg book -d foo $ hg push -B foo pushing to ssh://user@dummy/remote diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t --- a/tests/test-subrepo.t +++ b/tests/test-subrepo.t @@ -580,6 +580,7 @@ Issue1977: multirepo push should fail if cloning subrepo s from $TESTTMP/sub/repo/s (glob) 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg -q -R repo2 pull -u + [1] $ echo 1 > repo2/s/a $ hg -R repo2/s ci -m2 $ hg -q -R repo2/s push @@ -638,6 +639,7 @@ Pull -u now doesn't help pulling from issue1852a searching for changes no changes found + [1] Try the same, but with pull -u diff --git a/tests/test-treediscovery-legacy.t b/tests/test-treediscovery-legacy.t --- a/tests/test-treediscovery-legacy.t +++ b/tests/test-treediscovery-legacy.t @@ -48,6 +48,7 @@ Both are empty: $ hg pull -R empty1 $remote pulling from http://localhost:$HGPORT/ no changes found + [1] $ hg push -R empty1 $remote pushing to http://localhost:$HGPORT/ no changes found @@ -107,6 +108,7 @@ Full clone: pulling from http://localhost:$HGPORT/ searching for changes no changes found + [1] $ hg push $remote pushing to http://localhost:$HGPORT/ searching for changes @@ -231,6 +233,7 @@ Remote is empty: pulling from http://localhost:$HGPORT/ searching for changes no changes found + [1] $ hg push $remote pushing to http://localhost:$HGPORT/ searching for changes @@ -275,6 +278,7 @@ Local is superset: pulling from http://localhost:$HGPORT/ searching for changes no changes found + [1] $ hg push $remote pushing to http://localhost:$HGPORT/ searching for changes diff --git a/tests/test-treediscovery.t b/tests/test-treediscovery.t --- a/tests/test-treediscovery.t +++ b/tests/test-treediscovery.t @@ -42,6 +42,7 @@ Both are empty: $ hg pull -R empty1 $remote pulling from http://localhost:$HGPORT/ no changes found + [1] $ hg push -R empty1 $remote pushing to http://localhost:$HGPORT/ no changes found @@ -101,6 +102,7 @@ Full clone: pulling from http://localhost:$HGPORT/ searching for changes no changes found + [1] $ hg push $remote pushing to http://localhost:$HGPORT/ searching for changes @@ -219,6 +221,7 @@ Remote is empty: pulling from http://localhost:$HGPORT/ searching for changes no changes found + [1] $ hg push $remote pushing to http://localhost:$HGPORT/ searching for changes @@ -263,6 +266,7 @@ Local is superset: pulling from http://localhost:$HGPORT/ searching for changes no changes found + [1] $ hg push $remote pushing to http://localhost:$HGPORT/ searching for changes diff --git a/tests/test-url-rev.t b/tests/test-url-rev.t --- a/tests/test-url-rev.t +++ b/tests/test-url-rev.t @@ -141,6 +141,7 @@ Going back to the default branch: No new revs, no update: $ hg pull -qu + [1] $ hg parents -q 0:1f0dee641bb7