-
Bug
-
Resolution: Fixed
-
Medium
-
2.8.0, 2.9.0
-
None
Because of API changes in Mercurial 2.3 (http://www.selenic.com/repo/hg/annotate/4b73f4ba27ca/mercurial/context.py#l637) in some cases Mercurial indexing with FishEye can crash when resolving merges with deletes in the merge itself (sample repo attached)
Stacktrace is:
** Unknown exception encountered with possibly-broken third-party extension onsub ** which supports versions unknown of Mercurial. ** Please disable onsub and try your action again. ** If that fixes the bug please report it to the extension author. ** Python 2.7.3 (default, Sep 26 2012, 21:51:14) [GCC 4.7.2] ** Mercurial Distributed SCM (version 2.3) ** Extensions loaded: pager, graphlog, color, extdiff, purge, transplant, rebase, mq, onsub, felog Traceback (most recent call last): File "/home/lukpater/bin/hg/mercurial-2.3/hg", line 38, in <module> mercurial.dispatch.run() File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/dispatch.py", line 28, in run sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/dispatch.py", line 65, in dispatch return _runcatch(req) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/dispatch.py", line 88, in _runcatch return _dispatch(req) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/dispatch.py", line 740, in _dispatch cmdpats, cmdoptions) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/dispatch.py", line 514, in runcommand ret = _runcommand(ui, options, cmd, d) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/extensions.py", line 189, in wrap return wrapper(origfn, *args, **kwargs) File "/home/lukpater/bin/hg/mercurial-2.3/hgext/color.py", line 364, in colorcmd return orig(ui_, opts, cmd, cmdfunc) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/extensions.py", line 189, in wrap return wrapper(origfn, *args, **kwargs) File "/home/lukpater/bin/hg/mercurial-2.3/hgext/pager.py", line 130, in pagecmd return orig(ui, options, cmd, cmdfunc) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/dispatch.py", line 830, in _runcommand return checkargs() File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/dispatch.py", line 801, in checkargs return cmdfunc() File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/dispatch.py", line 737, in <lambda> d = lambda: util.checksignature(func)(ui, *args, **cmdoptions) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/util.py", line 472, in check return func(*args, **kwargs) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/extensions.py", line 144, in wrap util.checksignature(origfn), *args, **kwargs) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/util.py", line 472, in check return func(*args, **kwargs) File "/home/lukpater/bin/hg/mercurial-2.3/hgext/mq.py", line 3528, in mqcommand return orig(ui, repo, *args, **kwargs) File "/home/lukpater/bin/hg/mercurial-2.3/mercurial/util.py", line 472, in check return func(*args, **kwargs) File "/home/lukpater/dos/FSH-10247/dist-2.8.2/fecru-2.8.2/python/hg/hgfelog/hgfelog.py", line 95, in felog felognode(ui, repo, repo[r], **opts) File "/home/lukpater/dos/FSH-10247/dist-2.8.2/fecru-2.8.2/python/hg/hgfelog/hgfelog.py", line 121, in felognode diffParent(ui, repo, ctx, commitState, f, opts.get('patch'), opts.get('converted'), opts.get('merges'), opts.get('changesets')) File "/home/lukpater/dos/FSH-10247/dist-2.8.2/fecru-2.8.2/python/hg/hgfelog/hgfelog.py", line 136, in diffParent processPath(ui, repo, ctx, commitState, format, diffs, svnConversion, f) File "/home/lukpater/dos/FSH-10247/dist-2.8.2/fecru-2.8.2/python/hg/hgfelog/hgfelog.py", line 141, in processPath state = pathstate(repo, ctx, commitState, svnConversion, f) File "/home/lukpater/dos/FSH-10247/dist-2.8.2/fecru-2.8.2/python/hg/hgfelog/hgfelog.py", line 274, in __init__ self._parents = getDeletedFileParents(ctx, path) File "/home/lukpater/dos/FSH-10247/dist-2.8.2/fecru-2.8.2/python/hg/hgfelog/hgfelog.py", line 265, in getDeletedFileParents ancestor0 = parents[0].ancestor(parents[1]) TypeError: ancestor() takes exactly 3 arguments (2 given)
HTR:
1. Unzip attached repo
2. Run:
~/bin/hg/mercurial-2.3/hg --config extensions.felog=/home/.../dist-2.8.2/fecru-2.8.2/python/hg/hgfelog/hgfelog.py --config ui.verbose=false felog default -p -m