[Bug 4840] New: treemanifest infinite recursion during `hg convert`

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Thu Sep 24 17:43:30 UTC 2015


http://bz.selenic.com/show_bug.cgi?id=4840

            Bug ID: 4840
           Summary: treemanifest infinite recursion during `hg convert`
           Product: Mercurial
           Version: unspecified
          Hardware: PC
                OS: Mac OS
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at selenic.com
          Reporter: durin42 at gmail.com
                CC: mercurial-devel at selenic.com

I was converting http://bitbucket.org/durin42/subversion from regular hg to hg
with treemanifest to see how the space savings worked out (mostly curious) and
I keep hitting infinite recursion in _load():

** Unknown exception encountered with possibly-broken third-party extension
narrowhg                                                                        
** which supports versions unknown of Mercurial.
** Please disable narrowhg and try your action again.
** If that fixes the bug please report it to the extension author.
** Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2]
** Mercurial Distributed SCM (version 3.5.1+242-7bcb7557ba45)
** Extensions loaded: google_hgext, narrowhg, remotefilelog, color, convert,
highlight, histedit, strip, mq, patchbomb, progress, purge, rebase, record,
schemes, shelve, transplant, hg_remotebranches, terse_status, hgsubversion,
evolve, perf, topic
Traceback (most recent call last):
  File "/opt/hg/bin/hg", line 43, in <module>
    mercurial.dispatch.run()
  File "/opt/hg/lib/python/mercurial/dispatch.py", line 54, in run
    sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
  File "/opt/hg/lib/python/mercurial/dispatch.py", line 116, in dispatch
    ret = _runcatch(req)
  File "/opt/hg/lib/python/mercurial/dispatch.py", line 186, in _runcatch
    try:
  File "/opt/hg/lib/python/mercurial/dispatch.py", line 921, in _dispatch
    cmdpats, cmdoptions)
  File "/opt/hg/lib/python/mercurial/extensions.py", line 183, in closure
    return func(*(args + a), **kw)
  File "/usr/lib/python2.7/dist-packages/narrowhg/narrowcommands.py", line 34,
in runcommand_warning
    cmdoptions)
  File "/opt/hg/lib/python/mercurial/dispatch.py", line 680, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/opt/hg/lib/python/mercurial/extensions.py", line 183, in closure
    return func(*(args + a), **kw)
  File "/opt/hg/lib/python/hgext/color.py", line 525, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/opt/hg/lib/python/mercurial/dispatch.py", line 1039, in _runcommand
    return checkargs()
  File "/opt/hg/lib/python/mercurial/dispatch.py", line 1008, in checkargs
    return cmdfunc()
  File "/opt/hg/lib/python/mercurial/dispatch.py", line 918, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/opt/hg/lib/python/mercurial/util.py", line 792, in check
    return func(*args, **kwargs)
  File "/opt/hg/lib/python/hgext/convert/__init__.py", line 383, in convert
    return convcmd.convert(ui, src, dest, revmapfile, **opts)
  File "/opt/hg/lib/python/hgext/convert/convcmd.py", line 579, in convert
    c.convert(sortmode)
  File "/opt/hg/lib/python/hgext/convert/convcmd.py", line 491, in convert
    self.copy(c)
  File "/opt/hg/lib/python/hgext/convert/convcmd.py", line 459, in copy
    source, self.map, full, cleanp2)
  File "/opt/hg/lib/python/hgext/convert/hg.py", line 329, in putcommit
    node = hex(self.repo.commitctx(ctx))
  File
"/usr/local/google/home/augie/Programming/hg/topic/src/topic/__init__.py", line
73, in commitctx
    return orig.commitctx(self, ctx, error=error)
  File "/opt/hg/lib/python/mercurial/localrepo.py", line 64, in wrapper
    return orig(repo.unfiltered(), *args, **kwargs)
  File "/opt/hg/lib/python/mercurial/localrepo.py", line 1563, in commitctx
    if ctx.files():
  File "/opt/hg/lib/python/mercurial/context.py", line 1232, in files
    return sorted(self._status.modified + self._status.added +
  File "/opt/hg/lib/python/mercurial/util.py", line 531, in __get__
    result = self.func(obj)
  File "/opt/hg/lib/python/mercurial/context.py", line 1883, in _status
    if not managing(f):
  File "/opt/hg/lib/python/mercurial/context.py", line 1879, in <lambda>
    managing = lambda f: f in man1
  File "/opt/hg/lib/python/mercurial/manifest.py", line 532, in __contains__
    return self._dirs[dir].__contains__(subpath)
  File "/opt/hg/lib/python/mercurial/manifest.py", line 532, in __contains__
    return self._dirs[dir].__contains__(subpath)
  File "/opt/hg/lib/python/mercurial/manifest.py", line 532, in __contains__
    return self._dirs[dir].__contains__(subpath)
  File "/opt/hg/lib/python/mercurial/manifest.py", line 527, in __contains__
    self._load()
  File "/opt/hg/lib/python/mercurial/manifest.py", line 618, in _load
    self._load()
  File "/opt/hg/lib/python/mercurial/manifest.py", line 618, in _load
    self._load()
  File "/opt/hg/lib/python/mercurial/manifest.py", line 618, in _load
    self._load()
  File "/opt/hg/lib/python/mercurial/manifest.py", line 618, in _load
    self._load()
[etc for a long time]
  File "/opt/hg/lib/python/mercurial/manifest.py", line 618, in _load
    self._load()
  File "/opt/hg/lib/python/mercurial/manifest.py", line 618, in _load
    self._load()
RuntimeError: maximum recursion depth exceeded

inspecting with pdb makes it look like self._load() is the same as _load, and
that we'll never get anywhere.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list