"Diff to local" crashes when file

Issue #2373 invalid
Anonymous created an issue
** Mercurial version (2.4.1).  TortoiseHg version (2.6.1)
** Command: --nofork workbench
** CWD: E:\Hg\FB-001
** Encoding: cp1252
** Extensions loaded: graphlog, hgk, purge, mq, fetch, convert, extdiff, eol
** Python version: 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]
** Windows version: sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1')
** Processor architecture: x64
** Qt-4.8.0 PyQt-4.9.1
Traceback (most recent call last):
  File "tortoisehg\hgqt\repowidget.pyo", line 1678, in visualDiffToLocal
  File "tortoisehg\hgqt\visdiff.pyo", line 213, in visualdiff
  File "mercurial\copies.pyo", line 166, in pathcopies
  File "mercurial\copies.pyo", line 138, in _forwardcopies
  File "mercurial\copies.pyo", line 106, in _tracefile
  File "mercurial\context.pyo", line 723, in ancestors
  File "mercurial\context.pyo", line 461, in rev
  File "mercurial\util.pyo", line 246, in __get__
  File "mercurial\context.pyo", line 405, in _filerev
  File "mercurial\util.pyo", line 246, in __get__
  File "mercurial\context.pyo", line 399, in _filenode
  File "mercurial\revlog.pyo", line 776, in lookup
LookupError: file/that/not/longer/exists/in/branch.i@8637212d279d: no match found

I've updated to the latest head on my feature branch FB-001. I right-click default's head and choose "Diff to local", then I receive the above stacktrace.

"file/that/not/longer/exists/in/branch" is a file that was renamed, hence it no longer exists in the head of FB-001. It's also never made it into the default branch.

If I do things the other way round (update to head of default, "Diff to local" on FB-001 head), I get the diff as expected.

Comments (3)

  1. Ian Kemp

    Today I tried to repro this and couldn't. Same repo, didn't run verify, etc. So I'm going to chalk it up to a random cosmic occurrence. :) You can close the bug, if it happens again I'll add more info.

  2. Log in to comment