# HG changeset patch # User Bryan O'Sullivan # Date 2012-05-08 21:46:06 # Node ID 1d800eb9ba5287344cf8e1d3723720c4491a17e4 # Parent 6a7ce975edd67ef08acabfa44b350785b8c7b665 parsers: update ntrev when we stop scanning This prevents us from inserting some nodes twice, wasting work. diff --git a/mercurial/parsers.c b/mercurial/parsers.c --- a/mercurial/parsers.c +++ b/mercurial/parsers.c @@ -690,10 +690,14 @@ static int index_find_node(indexObject * } else { for (rev = self->ntrev - 1; rev >= 0; rev--) { const char *n = index_node(self, rev); - if (n == NULL) + if (n == NULL) { + self->ntrev = rev + 1; return -2; - if (nt_insert(self, n, rev) == -1) + } + if (nt_insert(self, n, rev) == -1) { + self->ntrev = rev + 1; return -3; + } if (memcmp(node, n, nodelen > 20 ? 20 : nodelen) == 0) { break; }