diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py --- a/mercurial/changegroup.py +++ b/mercurial/changegroup.py @@ -80,7 +80,7 @@ def combineresults(results): return result bundletypes = { - "": ("", 'None'), # only when using unbundle on ssh and old http servers + "": ("", None), # only when using unbundle on ssh and old http servers # since the unification ssh accepts a header but there # is no capability signaling it. "HG20": (), # special-cased below diff --git a/tests/test-push-http-bundle1.t b/tests/test-push-http-bundle1.t --- a/tests/test-push-http-bundle1.t +++ b/tests/test-push-http-bundle1.t @@ -114,6 +114,36 @@ expect success, server lacks the unbundl $ hg rollback repository tip rolled back to revision 0 (undo serve) +expect success, pre-d1b16a746db6 server supports the unbundle capability, but +has no parameter + + $ cat < notcapable-unbundleparam.py + > from mercurial import extensions, httppeer + > def capable(orig, self, name): + > if name == 'unbundle': + > return True + > return orig(self, name) + > def uisetup(ui): + > extensions.wrapfunction(httppeer.httppeer, 'capable', capable) + > EOF + $ cp $HGRCPATH $HGRCPATH.orig + $ cat <> $HGRCPATH + > [extensions] + > notcapable-unbundleparam = `pwd`/notcapable-unbundleparam.py + > EOF + $ req + pushing to http://localhost:$HGPORT/ + searching for changes + remote: adding changesets + remote: adding manifests + remote: adding file changes + remote: added 1 changesets with 1 changes to 1 files + remote: changegroup hook: * (glob) + % serve errors + $ hg rollback + repository tip rolled back to revision 0 (undo serve) + $ mv $HGRCPATH.orig $HGRCPATH + expect push success, phase change failure $ cat > .hg/hgrc <