Workbench displays incorrect changeset description

Issue #146 resolved
Anonymous created an issue

The changeset list pane shows a description of "?? Error: 00changelog.i@ede60ff9e24e: no node ??" for several changesets in a repo. The correct changeset summary is shown below in the pane above the diff pane. Also, "hg log" shows correct summary, and "hg verify" finds no errors in the repo.

Thg version: 1.9.3+122-1aa704ff09d1 Mercurial-1.7.5+117-acbe171c8fbe, Python-2.6.6, PyQt-4.8.2, Qt-4.7.1

Comments (5)

  1. Steve Borho

    Ah, we finally get to the actual problem.. the previous two were bugs in showing this error message.

    This text is appearing in the 'Description' column?

    Does hash in the error match the hash of the changeset itself?

    Are you using bookmarks? local tags?

  2. Anonymous

    Yes, in the description column. The hash does not match any changeset hash of this repo. No bookmarks or tags of any kind in this repo. The other widget just below the list of changesets correctly shows the long summary of the changeset. Just the description column is wrong.

  3. Anonymous

    It looks like the RevlogError exception caught in has this traceback:

    Traceback (most recent call last):
      File "c:\mine\repos\thg\tortoisehg\hgqt\", line 28, in paint
        text = index.model().data(index, Qt.DisplayRole).toString()
      File "c:\mine\repos\thg\tortoisehg\hgqt\", line 408, in data
        result = self.rawdata(row, column, role)
      File "c:\mine\repos\thg\tortoisehg\hgqt\", line 420, in rawdata
        text = self._columnmap[column](ctx, gnode)
      File "c:\mine\repos\thg\tortoisehg\hgqt\", line 520, in getlog
        if ctx.thgbranchhead():
      File "c:\mine\repos\thg\tortoisehg\hgqt\", line 532, in thgbranchhead
        return self in self._repo._branchheads
      File "c:\mine\repos\mercurial\mercurial\", line 169, in __get__
        result = self.func(obj)
      File "c:\mine\repos\thg\tortoisehg\hgqt\", line 410, in _branchheads
        return [self.changectx(x) for x in self.branchmap()]
      File "c:\mine\repos\thg\tortoisehg\hgqt\", line 238, in changectx
        changectx = super(thgrepository, self).changectx(changeid)
      File "c:\mine\repos\mercurial\mercurial\", line 576, in changectx
        return self[changeid]
      File "c:\mine\repos\mercurial\mercurial\", line 206, in __getitem__
        return context.changectx(self, changeid)
      File "c:\mine\repos\mercurial\mercurial\", line 28, in __init__
        self._rev = self._repo.changelog.rev(self._node)
      File "c:\mine\repos\mercurial\mercurial\", line 309, in rev
        raise LookupError(node, self.indexfile, _('no node'))
    LookupError: 00changelog.i@ede60559e24e: no node
  4. Anonymous

    I think this was caused by an .hgtags file that was committed with bogus hash values. "hg verify" doesn't seem to catch this, and "hg tags" showed no tags defined at all. Once I removed the .hgtags file and commit, the problem goes away.

  5. Log in to comment