[Bug 4490] New: KeyError: 'filename' when using new linkrev on a repo with multiple heads and hidden changesets

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Tue Jan 6 01:24:11 UTC 2015


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

          Priority: normal
            Bug ID: 4490
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: KeyError: 'filename' when using new linkrev on a repo
                    with multiple heads and hidden changesets
          Severity: bug
    Classification: Unclassified
                OS: Mac OS
          Reporter: sean.michael.farley at gmail.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 3.0-rc
         Component: Mercurial
           Product: Mercurial

Steps to reproduce:

$ hg init
$ echo a>>a
$ hg ci -Am0
$ echo b>>b
$ hg ci -Am1
$ echo b>>b
$ hg ci --amend -m 1
$ hg up 0
$ echo c>>c
$ hg ci -Am2
$ hg up 'head() and not .'
$ hg log b
** Unknown exception encountered with possibly-broken third-party extension
debugshell
** which supports versions unknown of Mercurial.
** Please disable debugshell and try your action again.
** If that fixes the bug please report it to the extension author.
** Python 2.7.9 (default, Dec 13 2014, 15:13:49) [GCC 4.2.1 Compatible Apple
LLVM 6.0 (clang-600.0.56)]
** Mercurial Distributed SCM (version 3.2.4+531-5ff1c9cbd3db)
** Extensions loaded: transplant, color, patchbomb, schemes, progress, extdiff,
rebase, convert, hgk, record, pager, churn, histedit, purge, strip, shelve,
debugshell, evolve, hgwatchman, mercurial_keyring, hgsubversion
Traceback (most recent call last):
  File "/Users/sean/projects/hg/hg", line 43, in <module>
    mercurial.dispatch.run()
  File "/Users/sean/projects/hg/mercurial/dispatch.py", line 28, in run
    sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
  File "/Users/sean/projects/hg/mercurial/dispatch.py", line 71, in dispatch
    ret = _runcatch(req)
  File "/Users/sean/projects/hg/mercurial/dispatch.py", line 140, in _runcatch
    return _dispatch(req)
  File "/Users/sean/projects/hg/mercurial/dispatch.py", line 850, in _dispatch
    cmdpats, cmdoptions)
  File "/Users/sean/projects/hg/mercurial/dispatch.py", line 611, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/Users/sean/projects/hg/mercurial/extensions.py", line 196, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/Users/sean/projects/hg/hgext/pager.py", line 158, in pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File "/Users/sean/projects/hg/mercurial/extensions.py", line 196, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/Users/sean/projects/hg/hgext/color.py", line 490, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/Users/sean/projects/hg/mercurial/dispatch.py", line 941, in
_runcommand
    return checkargs()
  File "/Users/sean/projects/hg/mercurial/dispatch.py", line 912, in checkargs
    return cmdfunc()
  File "/Users/sean/projects/hg/mercurial/dispatch.py", line 847, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/Users/sean/projects/hg/mercurial/util.py", line 702, in check
    return func(*args, **kwargs)
  File "/Users/sean/projects/hg/mercurial/commands.py", line 4447, in log
    revs, expr, filematcher = cmdutil.getlogrevs(repo, pats, opts)
  File "/Users/sean/projects/hg/mercurial/cmdutil.py", line 1901, in getlogrevs
    revs = matcher(repo, revs)
  File "/Users/sean/projects/hg/mercurial/revset.py", line 2176, in mfunc
    result = getset(repo, subset, tree)
  File "/Users/sean/projects/hg/mercurial/revset.py", line 236, in getset
    s = methods[x[0]](repo, subset, *x[1:])
  File "/Users/sean/projects/hg/mercurial/revset.py", line 301, in func
    return symbols[a[1]](repo, subset, b)
  File "/Users/sean/projects/hg/mercurial/revset.py", line 840, in filelog
    fnode = repo[h].manifest()[f]
KeyError: 'b'

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


More information about the Mercurial-devel mailing list