tags-cache: skip the filternode step if we are not going to use it
When warming the hgtagsfnodescache, we don't need the actual result, so we can
simply skip the part that "filter" fnode we read from the cache. So provide a
quite visible speed up to the top level `hg debugupdatecache` function.
### 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: 19.947581
after: 18.916804 (-5.17%, -1.03)
#require svn svn-bindings
$ cat >> $HGRCPATH <<EOF
> [extensions]
> convert =
> EOF
$ svnadmin create svn-repo
$ svnadmin load -q svn-repo < "$TESTDIR/svn/tags.svndump"
Convert
$ hg convert --datesort svn-repo A-hg
initializing destination A-hg repository
scanning source...
sorting...
converting...
5 init projA
4 adda
3 changea
2 changea2
1 changea3
0 changea
updating tags
$ cd A-hg
$ hg log -G --template '{rev} {desc|firstline} tags: {tags}\n'
o 6 update tags tags: tip
|
o 5 changea tags: trunk.goodtag
|
o 4 changea3 tags:
|
o 3 changea2 tags: trunk.v1
|
o 2 changea tags:
|
o 1 adda tags:
|
o 0 init projA tags:
$ hg tags -q
tip
trunk.goodtag
trunk.v1
$ cd ..
Convert without tags
$ hg convert --datesort --config convert.svn.tags= svn-repo A-notags-hg
initializing destination A-notags-hg repository
scanning source...
sorting...
converting...
5 init projA
4 adda
3 changea
2 changea2
1 changea3
0 changea
$ hg -R A-notags-hg tags -q
tip