# HG changeset patch # User Martin von Zweigbergk # Date 1487007856 28800 # Node ID 455677a7667f6658be5c6e3f3d7b81a29cf5f9a2 # Parent 72f25e17af9d6a206ea374c30f229ae9513f3f23# Parent f3807a135e43b0499db12dc79697e0b9589dd095 merge with stable diff -r 72f25e17af9d -r 455677a7667f Makefile --- a/Makefile Mon Feb 13 02:31:56 2017 -0800 +++ b/Makefile Mon Feb 13 09:44:16 2017 -0800 @@ -141,7 +141,7 @@ # xgettext "parse" and ignore them. echo $(PYFILES) | xargs \ xgettext --package-name "Mercurial" \ - --msgid-bugs-address "" \ + --msgid-bugs-address "" \ --copyright-holder "Matt Mackall and others" \ --from-code ISO-8859-1 --join --sort-by-file --add-comments=i18n: \ -d hg -p i18n -o hg.pot.tmp diff -r 72f25e17af9d -r 455677a7667f contrib/check-code.py --- a/contrib/check-code.py Mon Feb 13 02:31:56 2017 -0800 +++ b/contrib/check-code.py Mon Feb 13 09:44:16 2017 -0800 @@ -452,6 +452,10 @@ [ (r'(http|https)://[a-zA-Z0-9./]*selenic.com/', 'use mercurial-scm.org domain URL'), + (r'mercurial@selenic\.com', + 'use mercurial-scm.org domain for mercurial ML address'), + (r'mercurial-devel@selenic\.com', + 'use mercurial-scm.org domain for mercurial-devel ML address'), ], # warnings [], diff -r 72f25e17af9d -r 455677a7667f contrib/debian/changelog --- a/contrib/debian/changelog Mon Feb 13 02:31:56 2017 -0800 +++ b/contrib/debian/changelog Mon Feb 13 09:44:16 2017 -0800 @@ -2,4 +2,4 @@ * Automated build performed by upstream. - -- Mercurial Devel __DATE__ + -- Mercurial Devel __DATE__ diff -r 72f25e17af9d -r 455677a7667f contrib/debian/control --- a/contrib/debian/control Mon Feb 13 02:31:56 2017 -0800 +++ b/contrib/debian/control Mon Feb 13 09:44:16 2017 -0800 @@ -1,7 +1,7 @@ Source: mercurial Section: vcs Priority: optional -Maintainer: Mercurial Developers +Maintainer: Mercurial Developers Build-Depends: debhelper (>= 9), dh-python, diff -r 72f25e17af9d -r 455677a7667f contrib/debian/copyright --- a/contrib/debian/copyright Mon Feb 13 02:31:56 2017 -0800 +++ b/contrib/debian/copyright Mon Feb 13 09:44:16 2017 -0800 @@ -3,7 +3,7 @@ Source: https://www.mercurial-scm.org/ Files: * -Copyright: 2005-2015, Matt Mackall and others. +Copyright: 2005-2017, Matt Mackall and others. License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public diff -r 72f25e17af9d -r 455677a7667f contrib/win32/ReadMe.html --- a/contrib/win32/ReadMe.html Mon Feb 13 02:31:56 2017 -0800 +++ b/contrib/win32/ReadMe.html Mon Feb 13 09:44:16 2017 -0800 @@ -140,7 +140,7 @@

- Mercurial is Copyright 2005-2016 Matt Mackall and others. See + Mercurial is Copyright 2005-2017 Matt Mackall and others. See the Contributors.txt file for a list of contributors.

diff -r 72f25e17af9d -r 455677a7667f contrib/win32/mercurial.iss --- a/contrib/win32/mercurial.iss Mon Feb 13 02:31:56 2017 -0800 +++ b/contrib/win32/mercurial.iss Mon Feb 13 09:44:16 2017 -0800 @@ -21,7 +21,7 @@ #endif [Setup] -AppCopyright=Copyright 2005-2016 Matt Mackall and others +AppCopyright=Copyright 2005-2017 Matt Mackall and others AppName=Mercurial AppVersion={#VERSION} #if ARCH == "x64" @@ -41,11 +41,11 @@ AppSupportURL=https://mercurial-scm.org/ AppUpdatesURL=https://mercurial-scm.org/ AppID={{4B95A5F1-EF59-4B08-BED8-C891C46121B3} -AppContact=mercurial@selenic.com +AppContact=mercurial@mercurial-scm.org DefaultDirName={pf}\Mercurial SourceDir=..\.. VersionInfoDescription=Mercurial distributed SCM (version {#VERSION}) -VersionInfoCopyright=Copyright 2005-2016 Matt Mackall and others +VersionInfoCopyright=Copyright 2005-2017 Matt Mackall and others VersionInfoCompany=Matt Mackall and others InternalCompressLevel=max SolidCompression=true diff -r 72f25e17af9d -r 455677a7667f contrib/wix/mercurial.wxs --- a/contrib/wix/mercurial.wxs Mon Feb 13 02:31:56 2017 -0800 +++ b/contrib/wix/mercurial.wxs Mon Feb 13 09:44:16 2017 -0800 @@ -43,7 +43,7 @@ - mercurial@selenic.com + mercurial@mercurial-scm.org https://mercurial-scm.org/wiki/ https://mercurial-scm.org/about/ https://mercurial-scm.org/downloads/ diff -r 72f25e17af9d -r 455677a7667f i18n/da.po --- a/i18n/da.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/da.po Mon Feb 13 09:44:16 2017 -0800 @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-11-09 18:27+0100\n" "PO-Revision-Date: 2011-11-09 19:00+0100\n" "Last-Translator: \n" diff -r 72f25e17af9d -r 455677a7667f i18n/de.po --- a/i18n/de.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/de.po Mon Feb 13 09:44:16 2017 -0800 @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-29 16:47+0100\n" "PO-Revision-Date: 2014-05-07 09:14+0200\n" "Last-Translator: Simon Heimberg \n" diff -r 72f25e17af9d -r 455677a7667f i18n/el.po --- a/i18n/el.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/el.po Mon Feb 13 09:44:16 2017 -0800 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-10-25 12:38+0100\n" "PO-Revision-Date: 2009-12-02 03:23+0200\n" "Last-Translator: \n" diff -r 72f25e17af9d -r 455677a7667f i18n/fr.po --- a/i18n/fr.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/fr.po Mon Feb 13 09:44:16 2017 -0800 @@ -85,7 +85,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-10-25 12:38+0100\n" "PO-Revision-Date: 2009-10-25 12:43+0100\n" "Last-Translator: Cedric Duval \n" diff -r 72f25e17af9d -r 455677a7667f i18n/it.po --- a/i18n/it.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/it.po Mon Feb 13 09:44:16 2017 -0800 @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-03-22 22:04+0100\n" "PO-Revision-Date: 2013-04-05 14:47+0100\n" "Last-Translator: Stefano Tortarolo \n" diff -r 72f25e17af9d -r 455677a7667f i18n/ja.po --- a/i18n/ja.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/ja.po Mon Feb 13 09:44:16 2017 -0800 @@ -164,7 +164,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-12-31 13:29+0900\n" "PO-Revision-Date: 2016-12-31 17:09+0900\n" "Last-Translator: Japanese translation team \n" diff -r 72f25e17af9d -r 455677a7667f i18n/pt_BR.po --- a/i18n/pt_BR.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/pt_BR.po Mon Feb 13 09:44:16 2017 -0800 @@ -31,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-01-31 16:48-0200\n" "PO-Revision-Date: 2017-02-01 08:40-0200\n" "Last-Translator: Wagner Bruna \n" diff -r 72f25e17af9d -r 455677a7667f i18n/ro.po --- a/i18n/ro.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/ro.po Mon Feb 13 09:44:16 2017 -0800 @@ -105,7 +105,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-08 15:03+0200\n" "PO-Revision-Date: 2011-06-08 17:00+0200\n" "Last-Translator: Daniel Dumitriu \n" diff -r 72f25e17af9d -r 455677a7667f i18n/ru.po --- a/i18n/ru.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/ru.po Mon Feb 13 09:44:16 2017 -0800 @@ -179,7 +179,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-10-13 14:18+0400\n" "PO-Revision-Date: 2011-05-12 23:48+0400\n" "Last-Translator: Alexander Sauta \n" diff -r 72f25e17af9d -r 455677a7667f i18n/sv.po --- a/i18n/sv.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/sv.po Mon Feb 13 09:44:16 2017 -0800 @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-07-28 14:35+0200\n" "PO-Revision-Date: 2012-07-28 22:58+0200\n" "Last-Translator: Jens Bäckman \n" diff -r 72f25e17af9d -r 455677a7667f i18n/zh_CN.po --- a/i18n/zh_CN.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/zh_CN.po Mon Feb 13 09:44:16 2017 -0800 @@ -46,7 +46,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial 1.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-10-19 11:47+0800\n" "PO-Revision-Date: 2009-03-31 20:38+0200\n" "Last-Translator: Dongsheng Song \n" diff -r 72f25e17af9d -r 455677a7667f i18n/zh_TW.po --- a/i18n/zh_TW.po Mon Feb 13 02:31:56 2017 -0800 +++ b/i18n/zh_TW.po Mon Feb 13 09:44:16 2017 -0800 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Mercurial\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-10-31 22:27+0100\n" "PO-Revision-Date: 2014-05-07 09:20+0200\n" "Last-Translator: Chia-Huan Wu ,leolarrel\n" diff -r 72f25e17af9d -r 455677a7667f mercurial/commands.py --- a/mercurial/commands.py Mon Feb 13 02:31:56 2017 -0800 +++ b/mercurial/commands.py Mon Feb 13 09:44:16 2017 -0800 @@ -6583,7 +6583,7 @@ util.version()) license = _( "(see https://mercurial-scm.org for more information)\n" - "\nCopyright (C) 2005-2016 Matt Mackall and others\n" + "\nCopyright (C) 2005-2017 Matt Mackall and others\n" "This is free software; see the source for copying conditions. " "There is NO\nwarranty; " "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" diff -r 72f25e17af9d -r 455677a7667f mercurial/exchange.py --- a/mercurial/exchange.py Mon Feb 13 02:31:56 2017 -0800 +++ b/mercurial/exchange.py Mon Feb 13 09:44:16 2017 -0800 @@ -904,7 +904,9 @@ raise error.Abort(_('missing support for %s') % exc) except bundle2.AbortFromPart as exc: pushop.ui.status(_('remote: %s\n') % exc) - raise error.Abort(_('push failed on remote'), hint=exc.hint) + if exc.hint is not None: + pushop.ui.status(_('remote: %s\n') % ('(%s)' % exc.hint)) + raise error.Abort(_('push failed on remote')) except error.PushkeyFailed as exc: partid = int(exc.partid) if partid not in pushop.pkfailcb: @@ -1361,6 +1363,9 @@ bundle = pullop.remote.getbundle('pull', **kwargs) try: op = bundle2.processbundle(pullop.repo, bundle, pullop.gettransaction) + except bundle2.AbortFromPart as exc: + pullop.repo.ui.status(_('remote: abort: %s\n') % exc) + raise error.Abort(_('pull failed on remote'), hint=exc.hint) except error.BundleValueError as exc: raise error.Abort(_('missing support for %s') % exc) diff -r 72f25e17af9d -r 455677a7667f mercurial/help/hg.1.txt --- a/mercurial/help/hg.1.txt Mon Feb 13 02:31:56 2017 -0800 +++ b/mercurial/help/hg.1.txt Mon Feb 13 09:44:16 2017 -0800 @@ -112,7 +112,7 @@ Copying """"""" -Copyright (C) 2005-2016 Matt Mackall. +Copyright (C) 2005-2017 Matt Mackall. Free use of this software is granted under the terms of the GNU General Public License version 2 or any later version. diff -r 72f25e17af9d -r 455677a7667f mercurial/help/hgignore.5.txt --- a/mercurial/help/hgignore.5.txt Mon Feb 13 02:31:56 2017 -0800 +++ b/mercurial/help/hgignore.5.txt Mon Feb 13 09:44:16 2017 -0800 @@ -26,7 +26,7 @@ Copying ======= This manual page is copyright 2006 Vadim Gelfer. -Mercurial is copyright 2005-2016 Matt Mackall. +Mercurial is copyright 2005-2017 Matt Mackall. Free use of this software is granted under the terms of the GNU General Public License version 2 or any later version. diff -r 72f25e17af9d -r 455677a7667f mercurial/help/hgrc.5.txt --- a/mercurial/help/hgrc.5.txt Mon Feb 13 02:31:56 2017 -0800 +++ b/mercurial/help/hgrc.5.txt Mon Feb 13 09:44:16 2017 -0800 @@ -34,7 +34,7 @@ Copying ======= This manual page is copyright 2005 Bryan O'Sullivan. -Mercurial is copyright 2005-2016 Matt Mackall. +Mercurial is copyright 2005-2017 Matt Mackall. Free use of this software is granted under the terms of the GNU General Public License version 2 or any later version. diff -r 72f25e17af9d -r 455677a7667f mercurial/wireproto.py --- a/mercurial/wireproto.py Mon Feb 13 02:31:56 2017 -0800 +++ b/mercurial/wireproto.py Mon Feb 13 09:44:16 2017 -0800 @@ -33,9 +33,10 @@ urlerr = util.urlerr urlreq = util.urlreq -bundle2required = _( - 'incompatible Mercurial client; bundle2 required\n' - '(see https://www.mercurial-scm.org/wiki/IncompatibleClient)\n') +bundle2requiredmain = _('incompatible Mercurial client; bundle2 required') +bundle2requiredhint = _('see https://www.mercurial-scm.org/wiki/' + 'IncompatibleClient') +bundle2required = '%s\n(%s)\n' % (bundle2requiredmain, bundle2requiredhint) class abstractserverproto(object): """abstract class that summarizes the protocol API @@ -833,9 +834,29 @@ if not bundle1allowed(repo, 'pull'): if not exchange.bundle2requested(opts.get('bundlecaps')): - return ooberror(bundle2required) + if proto.name == 'http': + return ooberror(bundle2required) + raise error.Abort(bundle2requiredmain, + hint=bundle2requiredhint) - chunks = exchange.getbundlechunks(repo, 'serve', **opts) + #chunks = exchange.getbundlechunks(repo, 'serve', **opts) + try: + chunks = exchange.getbundlechunks(repo, 'serve', **opts) + except error.Abort as exc: + # cleanly forward Abort error to the client + if not exchange.bundle2requested(opts.get('bundlecaps')): + if proto.name == 'http': + return ooberror(str(exc) + '\n') + raise # cannot do better for bundle1 + ssh + # bundle2 request expect a bundle2 reply + bundler = bundle2.bundle20(repo.ui) + manargs = [('message', str(exc))] + advargs = [] + if exc.hint is not None: + advargs.append(('hint', exc.hint)) + bundler.addpart(bundle2.bundlepart('error:abort', + manargs, advargs)) + return streamres(gen=bundler.getchunks(), v1compressible=True) return streamres(gen=chunks, v1compressible=True) @wireprotocommand('heads') @@ -948,7 +969,14 @@ gen = exchange.readbundle(repo.ui, fp, None) if (isinstance(gen, changegroupmod.cg1unpacker) and not bundle1allowed(repo, 'push')): - return ooberror(bundle2required) + if proto.name == 'http': + # need to special case http because stderr do not get to + # the http client on failed push so we need to abuse some + # other error type to make sure the message get to the + # user. + return ooberror(bundle2required) + raise error.Abort(bundle2requiredmain, + hint=bundle2requiredhint) r = exchange.unbundle(repo, gen, their_heads, 'serve', proto._client()) @@ -973,6 +1001,8 @@ # This need to be moved to something proper. # Feel free to do it. util.stderr.write("abort: %s\n" % exc) + if exc.hint is not None: + util.stderr.write("(%s)\n" % exc.hint) return pushres(0) except error.PushRaced: return pusherr(str(exc)) diff -r 72f25e17af9d -r 455677a7667f setup.py --- a/setup.py Mon Feb 13 02:31:56 2017 -0800 +++ b/setup.py Mon Feb 13 09:44:16 2017 -0800 @@ -664,7 +664,7 @@ if py2exeloaded: extra['console'] = [ {'script':'hg', - 'copyright':'Copyright (C) 2005-2016 Matt Mackall and others', + 'copyright':'Copyright (C) 2005-2017 Matt Mackall and others', 'product_version':version}] # sub command of 'build' because 'py2exe' does not handle sub_commands build.sub_commands.insert(0, ('build_hgextindex', None)) @@ -712,7 +712,7 @@ setup(name='mercurial', version=setupversion, author='Matt Mackall and many others', - author_email='mercurial@selenic.com', + author_email='mercurial@mercurial-scm.org', url='https://mercurial-scm.org/', download_url='https://mercurial-scm.org/release/', description=('Fast scalable distributed SCM (revision control, version ' diff -r 72f25e17af9d -r 455677a7667f tests/crashgetbundler.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/crashgetbundler.py Mon Feb 13 09:44:16 2017 -0800 @@ -0,0 +1,14 @@ +from __future__ import absolute_import + +from mercurial.i18n import _ +from mercurial import ( + changegroup, + error, + extensions + ) + +def abort(orig, *args, **kwargs): + raise error.Abort(_('this is an exercise')) + +def uisetup(ui): + extensions.wrapfunction(changegroup, 'getbundler', abort) diff -r 72f25e17af9d -r 455677a7667f tests/test-bundle2-exchange.t --- a/tests/test-bundle2-exchange.t Mon Feb 13 02:31:56 2017 -0800 +++ b/tests/test-bundle2-exchange.t Mon Feb 13 09:44:16 2017 -0800 @@ -518,16 +518,16 @@ pushing to ssh://user@dummy/other searching for changes remote: Abandon ship! + remote: (don't panic) abort: push failed on remote - (don't panic) [255] $ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6 pushing to http://localhost:$HGPORT2/ searching for changes remote: Abandon ship! + remote: (don't panic) abort: push failed on remote - (don't panic) [255] @@ -1024,11 +1024,12 @@ Verify the global server.bundle1 option works - $ cat > .hg/hgrc << EOF + $ cd .. + $ cat > bundle2onlyserver/.hg/hgrc << EOF > [server] > bundle1 = false > EOF - $ hg serve -p $HGPORT -d --pid-file=hg.pid + $ hg -R bundle2onlyserver serve -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid >> $DAEMON_PIDS $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT not-bundle2 requesting all changes @@ -1038,11 +1039,21 @@ [255] $ killdaemons.py - $ cat > .hg/hgrc << EOF + $ hg --config devel.legacy.exchange=bundle1 clone ssh://user@dummy/bundle2onlyserver not-bundle2-ssh + requesting all changes + adding changesets + remote: abort: incompatible Mercurial client; bundle2 required + remote: (see https://www.mercurial-scm.org/wiki/IncompatibleClient) + transaction abort! + rollback completed + abort: stream ended unexpectedly (got 0 bytes, expected 4) + [255] + + $ cat > bundle2onlyserver/.hg/hgrc << EOF > [server] > bundle1gd = false > EOF - $ hg serve -p $HGPORT -d --pid-file=hg.pid + $ hg -R bundle2onlyserver serve -p $HGPORT -d --pid-file=hg.pid $ cat hg.pid >> $DAEMON_PIDS $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT/ not-bundle2 @@ -1054,7 +1065,7 @@ $ killdaemons.py - $ cd ../notgdserver + $ cd notgdserver $ cat > .hg/hgrc << EOF > [server] > bundle1gd = false @@ -1107,6 +1118,15 @@ (see https://www.mercurial-scm.org/wiki/IncompatibleClient) [255] +(also check with ssh) + + $ hg --config devel.legacy.exchange=bundle1 push ssh://user@dummy/bundle2onlyserver + pushing to ssh://user@dummy/bundle2onlyserver + searching for changes + remote: abort: incompatible Mercurial client; bundle2 required + remote: (see https://www.mercurial-scm.org/wiki/IncompatibleClient) + [1] + $ hg push pushing to http://localhost:$HGPORT/ searching for changes diff -r 72f25e17af9d -r 455677a7667f tests/test-convert-baz.t --- a/tests/test-convert-baz.t Mon Feb 13 02:31:56 2017 -0800 +++ b/tests/test-convert-baz.t Mon Feb 13 09:44:16 2017 -0800 @@ -1,6 +1,6 @@ #require baz symlink - $ baz my-id "mercurial " + $ baz my-id "mercurial " $ echo "[extensions]" >> $HGRCPATH $ echo "convert=" >> $HGRCPATH diff -r 72f25e17af9d -r 455677a7667f tests/test-convert-tla.t --- a/tests/test-convert-tla.t Mon Feb 13 02:31:56 2017 -0800 +++ b/tests/test-convert-tla.t Mon Feb 13 09:44:16 2017 -0800 @@ -1,6 +1,6 @@ #require tla symlink - $ tla my-id "mercurial " + $ tla my-id "mercurial " $ echo "[extensions]" >> $HGRCPATH $ echo "convert=" >> $HGRCPATH diff -r 72f25e17af9d -r 455677a7667f tests/test-help.t --- a/tests/test-help.t Mon Feb 13 02:31:56 2017 -0800 +++ b/tests/test-help.t Mon Feb 13 09:44:16 2017 -0800 @@ -445,7 +445,7 @@ Mercurial Distributed SCM (version *) (glob) (see https://mercurial-scm.org for more information) - Copyright (C) 2005-2016 Matt Mackall and others + Copyright (C) 2005-* Matt Mackall and others (glob) This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff -r 72f25e17af9d -r 455677a7667f tests/test-hgrc.t --- a/tests/test-hgrc.t Mon Feb 13 02:31:56 2017 -0800 +++ b/tests/test-hgrc.t Mon Feb 13 09:44:16 2017 -0800 @@ -71,7 +71,7 @@ Mercurial Distributed SCM (version *) (glob) (see https://mercurial-scm.org for more information) - Copyright (C) 2005-2016 Matt Mackall and others + Copyright (C) 2005-* Matt Mackall and others (glob) This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ unset FAKEPATH diff -r 72f25e17af9d -r 455677a7667f tests/test-http-bundle1.t --- a/tests/test-http-bundle1.t Mon Feb 13 02:31:56 2017 -0800 +++ b/tests/test-http-bundle1.t Mon Feb 13 09:44:16 2017 -0800 @@ -333,3 +333,15 @@ check error log $ cat error.log + +Check error reporting while pulling/cloning + + $ $RUNTESTDIR/killdaemons.py + $ hg -R test serve -p $HGPORT -d --pid-file=hg3.pid -E error.log --config extensions.crash=${TESTDIR}/crashgetbundler.py + $ cat hg3.pid >> $DAEMON_PIDS + $ hg clone http://localhost:$HGPORT/ abort-clone + requesting all changes + abort: remote error: + this is an exercise + [255] + $ cat error.log diff -r 72f25e17af9d -r 455677a7667f tests/test-http.t --- a/tests/test-http.t Mon Feb 13 02:31:56 2017 -0800 +++ b/tests/test-http.t Mon Feb 13 09:44:16 2017 -0800 @@ -321,3 +321,15 @@ check error log $ cat error.log + +check abort error reporting while pulling/cloning + + $ $RUNTESTDIR/killdaemons.py + $ hg -R test serve -p $HGPORT -d --pid-file=hg3.pid -E error.log --config extensions.crash=${TESTDIR}/crashgetbundler.py + $ cat hg3.pid >> $DAEMON_PIDS + $ hg clone http://localhost:$HGPORT/ abort-clone + requesting all changes + remote: abort: this is an exercise + abort: pull failed on remote + [255] + $ cat error.log diff -r 72f25e17af9d -r 455677a7667f tests/test-ssh-bundle1.t --- a/tests/test-ssh-bundle1.t Mon Feb 13 02:31:56 2017 -0800 +++ b/tests/test-ssh-bundle1.t Mon Feb 13 09:44:16 2017 -0800 @@ -543,3 +543,20 @@ remote: abort: pretxnchangegroup.fail hook failed [1] +abort during pull is properly reported as such + + $ echo morefoo >> ../remote/foo + $ hg -R ../remote commit --message "more foo to be pulled" + $ cat >> ../remote/.hg/hgrc << EOF + > [extensions] + > crash = ${TESTDIR}/crashgetbundler.py + > EOF + $ hg --config ui.ssh="python $TESTDIR/dummyssh" pull + pulling from ssh://user@dummy/remote + searching for changes + adding changesets + remote: abort: this is an exercise + transaction abort! + rollback completed + abort: stream ended unexpectedly (got 0 bytes, expected 4) + [255] diff -r 72f25e17af9d -r 455677a7667f tests/test-ssh.t --- a/tests/test-ssh.t Mon Feb 13 02:31:56 2017 -0800 +++ b/tests/test-ssh.t Mon Feb 13 09:44:16 2017 -0800 @@ -548,3 +548,17 @@ abort: push failed on remote [255] +abort during pull is properly reported as such + + $ echo morefoo >> ../remote/foo + $ hg -R ../remote commit --message "more foo to be pulled" + $ cat >> ../remote/.hg/hgrc << EOF + > [extensions] + > crash = ${TESTDIR}/crashgetbundler.py + > EOF + $ hg --config ui.ssh="python $TESTDIR/dummyssh" pull + pulling from ssh://user@dummy/remote + searching for changes + remote: abort: this is an exercise + abort: pull failed on remote + [255]