# HG changeset patch # User Durham Goode # Date 1371523440 25200 # Node ID 275d78d339cc7d954952f9a17ecaad4d098073ff # Parent 2d03c8da7d981a101c5f4d8dd5f9a55eb778033f revlog: add exception when linkrev == nullrev When we deployed the latest crew mercurial to our users, a few of them had issues where a filelog would have an entry with a -1 linkrev. This caused operations like rebase and amend to create a bundle containing the entire repository, which took a long time. I don't know what the issue is, but adding this check should prevent repos from getting in this state, and should help us pinpoint the issue next time it happens. diff -r 2d03c8da7d98 -r 275d78d339cc mercurial/revlog.py --- a/mercurial/revlog.py Thu Jun 13 01:44:02 2013 +0200 +++ b/mercurial/revlog.py Mon Jun 17 19:44:00 2013 -0700 @@ -991,6 +991,9 @@ p1, p2 - the parent nodeids of the revision cachedelta - an optional precomputed delta """ + if link == nullrev: + raise RevlogError(_("attempted to add linkrev -1 to %s") + % self.indexfile) node = hash(text, p1, p2) if node in self.nodemap: return node