Mercurial > hg
changeset 19326:7014526d67a8
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.
author | Durham Goode <durham@fb.com> |
---|---|
date | Mon, 17 Jun 2013 19:44:00 -0700 |
parents | ec896f9e8894 |
children | cf1b0a58a0de |
files | mercurial/revlog.py |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revlog.py Wed Jun 19 14:17:03 2013 -0500 +++ 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