##// END OF EJS Templates
cext-revlog: fixed __delitem__ for uninitialized nodetree...
cext-revlog: fixed __delitem__ for uninitialized nodetree This is a bug in a code path that's seldom used, because in practice (at least in the whole test suite), calls to `del index[i:j]` currently just don't happen before the nodetree has been initialized. However, in our current work to replace the nodetree by a Rust implementation, this is of course systematic. In `index_slice_del()`, if the slice start is smaller than `self->length`, the whole of `self->added` has to be cleared. Before this change, the clearing was done only by the call to `index_invalidate_added(self, 0)`, that happens only for initialized nodetrees. Hence the removal was effective only from `start` to `self->length`. The consequence is index corruption, with bogus results in subsequent calls, and in particular errors such as `ValueError("parent out of range")`, due to the fact that parents of entries in `self->added` are now just invalid. This is detected by the rebase tests, under conditions that the nodetree of revlog.c is never initialized. The provided specific test is more direct. Differential Revision: https://phab.mercurial-scm.org/D7603

File last commit:

r26421:4b0fc75f default
r44306:49fa0b31 default
Show More
error.tmpl
17 lines | 484 B | application/x-cheetah | CheetahLexer
{header}
<!-- Error -->
<id>{urlbase}{url|urlescape}</id>
<link rel="self" href="{urlbase}{url|urlescape}atom-log"/>
<link rel="alternate" href="{urlbase}{url|urlescape}"/>
<title>Error</title>
<updated>1970-01-01T00:00:00+00:00</updated>
<entry>
<title>Error</title>
<id>https://mercurial-scm.org/#error</id>
<author>
<name>mercurial</name>
</author>
<updated>1970-01-01T00:00:00+00:00</updated>
<content type="text">{error|escape}</content>
</entry>
</feed>