revlog: don't say "not found" on internal error
If index_node() returned NULL, then index_find_node() and and
nt_partialmatch() used to return -2 to signal that the node was not
found. However, we were passing in a revnum to index_node() that we
knew should exist, so the only reason it could return NULL was due to
some internal error or perhaps out of memory. Let's not use "not
found" for these cases. I suppose we never noticed this because these
error never happen in practice.
I think there are more places where we should error out instead of
reporting that the node was not found, but the cases mentioned above
were all I cared about right now (because using the same error code
for all failures simplified some future patches).
Differential Revision: https://phab.mercurial-scm.org/D3457
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init
$ echo qqq>qqq.txt
rollback dry run without rollback information
$ hg rollback
no rollback information available
[1]
add file
$ hg add
adding qqq.txt
commit first revision
$ hg ci -m 1
set bookmark
$ hg book test
$ echo www>>qqq.txt
commit second revision
$ hg ci -m 2
set bookmark
$ hg book test2
update to -2 (deactivates the active bookmark)
$ hg update -r -2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark test2)
$ echo eee>>qqq.txt
commit new head
$ hg ci -m 3
created new head
bookmarks updated?
$ hg book
test 1:25e1ee7a0081
test2 1:25e1ee7a0081
strip to revision 1
$ hg strip 1
saved backup bundle to $TESTTMP/.hg/strip-backup/*-backup.hg (glob)
list bookmarks
$ hg book
test 0:5c9ad3787638
test2 0:5c9ad3787638