Mercurial > hg
view contrib/phab-refresh-stack.sh @ 51597:b4a6a1ff8fce
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)
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 13 Mar 2024 11:38:28 +0100 |
parents | fba2d7fab11e |
children |
line wrap: on
line source
#!/bin/bash set -eu if [[ "$PHABRICATOR_TOKEN" == "NO-PHAB" ]]; then echo 'Skipping Phabricator Step' >&2 exit 0 fi revision_in_stack=`hg log \ --rev '.#stack and ::. and topic()' \ -T '\nONE-REV\n' \ | grep 'ONE-REV' | wc -l` revision_on_phab=`hg log \ --rev '.#stack and ::. and topic() and desc("re:\nDifferential Revision: [^\n]+D\d+$")'\ -T '\nONE-REV\n' \ | grep 'ONE-REV' | wc -l` if [[ $revision_in_stack -eq 0 ]]; then echo "stack is empty" >&2 exit 0 fi if [[ $revision_on_phab -eq 0 ]]; then echo "no tracked diff in this stack" >&2 exit 0 fi if [[ $revision_on_phab -lt $revision_in_stack ]]; then echo "not all stack changesets (${revision_in_stack}) have matching Phabricator Diff (${revision_on_phab})" >&2 exit 2 fi if [[ "$PHABRICATOR_TOKEN" == "" ]]; then echo 'missing $PHABRICATOR_TOKEN variable' >&2 echo '(use PHABRICATOR_TOKEN="NO-PHAB" to disable this step)' >&2 exit 2 fi hg \ --config extensions.phabricator= \ --config phabricator.url=https://phab.mercurial-scm.org/ \ --config phabricator.callsign=HG \ --config auth.phabricator.schemes=https \ --config auth.phabricator.prefix=phab.mercurial-scm.org \ --config auth.phabricator.phabtoken=$PHABRICATOR_TOKEN \ phabsend --rev '.#stack and ::. and topic()' \ "$@"