[Bug 5315] New: histedit --continue: abort: 00changelog.i at 88170a8325f3: no node!

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Fri Jul 29 11:43:12 EDT 2016


            Bug ID: 5315
           Summary: histedit --continue: abort:
                    00changelog.i at 88170a8325f3: no node!
           Product: Mercurial
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: histedit
          Assignee: bugzilla at selenic.com
          Reporter: ethan.glasser.camp at gmail.com
                CC: mercurial-devel at selenic.com

I was at the end of a histedit when I got the above message. I asked on IRC and
they helped me through recovery using hg unbundle on the commit (which I
happened to have in .hg/strip-backup), after which point the hg histedit
--continue worked. Here is the full traceback:

> hg --debug --traceback histedit --continue
automatically setting Bugzilla API Key auth https://reviewboard-hg.mozilla.org
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 191, in
    return _dispatch(req)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 924, in
    cmdpats, cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 681, in
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 195,
in closure
    return func(*(args + a), **kw)
  File "/usr/lib64/python2.7/site-packages/hgext/pager.py", line 143, in
    return orig(ui, options, cmd, cmdfunc)
  File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 195,
in closure
    return func(*(args + a), **kw)
  File "/usr/lib64/python2.7/site-packages/hgext/color.py", line 518, in
    return orig(ui_, opts, cmd, cmdfunc)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 1055,
in _runcommand
    return checkargs()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 1015,
in checkargs
    return cmdfunc()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 921, in
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 991, in
    return func(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/hgext/histedit.py", line 972, in
    _histedit(ui, repo, state, *freeargs, **opts)
  File "/usr/lib64/python2.7/site-packages/hgext/histedit.py", line 1172, in
    mapping, tmpnodes, created, ntm = processreplacement(state)
  File "/usr/lib64/python2.7/site-packages/hgext/histedit.py", line 1411, in
    newtopmost = sorted(new, key=state.repo.changelog.rev)[-1]
  File "/usr/lib64/python2.7/site-packages/mercurial/changelog.py", line 209,
in rev
    r = super(changelog, self).rev(node)
  File "/usr/lib64/python2.7/site-packages/mercurial/revlog.py", line 360, in
    raise LookupError(node, self.indexfile, _('no node'))
LookupError: 00changelog.i at 88170a8325f3: no node
abort: 00changelog.i at 88170a8325f3: no node!

I'm not exactly sure how I caused the commit to go missing in the first place.
I am not using evolve or mq extensions and I did not issue any strip or prune
commands myself. As best as I can remember, the things I did just before this
happened were as follows:

I was doing a histedit of a seven-commit series. I thought commit 4 was OK and
I had chosen to "edit" commit 5, but when I was running the tests I discovered
that I had a bug in commit 4 caused by a missing import. I added the import to
the file that it wasn't in, and all my tests (including the ones from commit 5)
started passing. Then I did a hg commit file-that-was-missing-the-import.js
--amend, and then hg histedit --continue to save the remaining changes as
commit 5.

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

More information about the Mercurial-devel mailing list