Mercurial 3.2 -> 3.4 regression - upgrade fails on push

Lawrence Stewart lstewart at room52.net
Tue May 19 05:16:51 UTC 2015


Hi all,

I upgraded from v3.2 to v3.4 and a push of some changes in my repo clone
which was cloned using v3.2 no longer works with the following:

> hg push
> pushing to ssh://lstewart@<server>//<repo>
> searching for changes
> ** unknown exception encountered, please report by visiting
> ** http://mercurial.selenic.com/wiki/BugTracker
> ** Python 2.7.9 (default, Apr  8 2015, 15:12:41) [GCC 4.2.1 Compatible FreeBSD Clang 3.4.1 (tags/RELEASE_34/dot1-final 208032)]
> ** Mercurial Distributed SCM (version 3.4)
> ** Extensions loaded: rebase, record, share, strip
> Traceback (most recent call last):
>   File "/usr/local/bin/hg", line 43, in <module>
>     mercurial.dispatch.run()
>   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 29, in run
>     sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 91, in dispatch
>     ret = _runcatch(req)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 160, in _runcatch
>     return _dispatch(req)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 885, in _dispatch
>     cmdpats, cmdoptions)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 646, in runcommand
>     ret = _runcommand(ui, options, cmd, d)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 976, in _runcommand
>     return checkargs()
>   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 947, in checkargs
>     return cmdfunc()
>   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 882, in <lambda>
>     d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 716, in check
>     return func(*args, **kwargs)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/commands.py", line 5228, in push
>     bookmarks=opts.get('bookmark', ()))
>   File "/usr/local/lib/python2.7/site-packages/mercurial/exchange.py", line 236, in push
>     _pushchangeset(pushop)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/exchange.py", line 627, in _pushchangeset
>     if not _pushcheckoutgoing(pushop):
>   File "/usr/local/lib/python2.7/site-packages/mercurial/exchange.py", line 427, in _pushcheckoutgoing
>     newbm)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/discovery.py", line 244, in checkheads
>     headssum = _headssummary(repo, remote, outgoing)
>   File "/usr/local/lib/python2.7/site-packages/mercurial/discovery.py", line 202, in _headssummary
>     headssum[branch][1][:] = newheads
> KeyError: 'freebsd-head'


No such error if I clone the repo fresh with v3.4, pull the changes from
my broken repo into my new clone and push from the fresh clone.

Smells like some sort of backwards compatibility regression/bug to me. I
still have the "bad" clone lying around if there's any additional
information I can provide.

Cheers,
Lawrence


More information about the Mercurial mailing list