Mercurial > hg
view tests/test-obsolete-bounds-checking.t @ 37494:1ce7a55b09d1
revlog: reset _nodepos after strip
When using the pure revlog parser, _nodepos is used to keep track of the
position during index scanning in the non-cached cache. If it is out of
bounds, BaseIndexObject._fix_index will assert. Since strip can actually
remove the position scanned last, make sure to reset it. Add an
assertion in the place where the invariance is clearer.
Differential Revision: https://phab.mercurial-scm.org/D3188
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Sun, 08 Apr 2018 01:08:43 +0200 |
parents | 44797aedfb35 |
children | 7e5be4a7cda7 |
line wrap: on
line source
Create a repo, set the username to something more than 255 bytes, then run hg amend on it. $ unset HGUSER $ cat >> $HGRCPATH << EOF > [ui] > username = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <very.long.name@example.com> > [extensions] > amend = > [experimental] > evolution.createmarkers=True > evolution.exchange=True > EOF $ hg init tmpa $ cd tmpa $ echo a > a $ hg add adding a $ hg commit -m "Initial commit" $ echo a >> a $ hg amend 2>&1 | egrep -v '^(\*\*| )' transaction abort! rollback completed Traceback (most recent call last): *ProgrammingError: obsstore metadata value cannot be longer than 255 bytes (value "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <very.long.name@example.com>" for key "user" is 285 bytes) (glob)