Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-4350

FishEye not fully compatible with Mercurial 2.3

      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
      

            [FE-4350] FishEye not fully compatible with Mercurial 2.3

            Nick added a comment -

            This one definitely needs fixing. Not all repos will be affected, however certainly some will be. The workaround is to let FECRU use an older HG version until we fix this properly.

            Mercurial 2.3 was released in August, after 2.8, and had a breaking API change.

            We could definitely look at getting this fixed on a 2.9 release.

            I don't believe many customers would be affected just yet however.

            Nick added a comment - This one definitely needs fixing. Not all repos will be affected, however certainly some will be. The workaround is to let FECRU use an older HG version until we fix this properly. Mercurial 2.3 was released in August, after 2.8, and had a breaking API change. We could definitely look at getting this fixed on a 2.9 release. I don't believe many customers would be affected just yet however.

              rstephens Richard Stephens (Inactive)
              lpater Lukasz Pater
              Affected customers:
              0 This affects my team
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: