tags-cache: directly operate on rev-num warming hgtagsfnodescache
Not having to goes through nodeid speed up things notably.
### data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog
# benchmark.name = hg.debug.debug-update-cache
# bin-env-vars.hg.flavor = default
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.pre-state = warm
before-this-series: 19.947581
before-this-changes: 18.916804 (-5.17%, -1.03)
this-changesets: 17.493725 (-12.30%, -2.45)
$ hg init repo
$ cd repo
$ echo a > a
$ hg ci -Am0
adding a
$ hg -q clone . foo
$ touch .hg/store/journal
$ echo foo > a
$ hg ci -Am0
abort: abandoned transaction found
(run 'hg recover' to clean up transaction)
[255]
$ hg recover
rolling back interrupted transaction
(verify step skipped, run `hg verify` to check your repository content)
recover, explicit verify
$ touch .hg/store/journal
$ hg ci -Am0
abort: abandoned transaction found
(run 'hg recover' to clean up transaction)
[255]
$ hg recover --verify -q
recover, no verify
$ touch .hg/store/journal
$ hg ci -Am0
abort: abandoned transaction found
(run 'hg recover' to clean up transaction)
[255]
$ hg recover --no-verify
rolling back interrupted transaction
(verify step skipped, run `hg verify` to check your repository content)
Check that zero-size journals are correctly aborted:
#if unix-permissions no-root
$ hg bundle -qa repo.hg
$ chmod -w foo/.hg/store/00changelog.i
$ hg -R foo unbundle repo.hg
adding changesets
transaction abort!
rollback completed
abort: $EACCES$: '$TESTTMP/repo/foo/.hg/store/.00changelog.i-*' (glob)
[255]
$ if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi
#endif