##// END OF EJS Templates
resourceutil: correct the root path for file based lookup under py2exe...
resourceutil: correct the root path for file based lookup under py2exe This silly copy/paste error caused "Mercurial" to be truncated from "C:\Program Files". The fact that "helptext" and "defaultrc" are now in a subpackage of "mercurial" added it back on, and everything seemed to work. But that broke if not installed to the default directory, and also caused TortoiseHg to look at Mercurial's config files instead of its own. Differential Revision: https://phab.mercurial-scm.org/D8054

File last commit:

r42094:cae3f7e3 default
r44678:9e367157 stable
Show More
discovery-helper.sh
107 lines | 2.6 KiB | application/x-sh | BashLexer
contrib: move the `discovery-helper.sh` script in`perf-utils` directory...
r42059 #!/bin/bash
#
# produces two repositories with different common and missing subsets
#
# $ discovery-helper.sh REPO NBHEADS DEPT
#
# The Goal is to produce two repositories with some common part and some
# exclusive part on each side. Provide a source repository REPO, it will
# produce two repositories REPO-left and REPO-right.
#
# Each repository will be missing some revisions exclusive to NBHEADS of the
# repo topological heads. These heads and revisions exclusive to them (up to
# DEPTH depth) are stripped.
#
# The "left" repository will use the NBHEADS first heads (sorted by
# description). The "right" use the last NBHEADS one.
#
# To find out how many topological heads a repo has, use:
#
# $ hg heads -t -T '{rev}\n' | wc -l
#
# Example:
#
# The `pypy-2018-09-01` repository has 192 heads. To produce two repositories
# with 92 common heads and ~50 exclusive heads on each side.
#
# $ ./discovery-helper.sh pypy-2018-08-01 50 10
set -euo pipefail
discovery-helper: add an extra argument to generate only one repo...
r42091 printusage () {
echo "usage: `basename $0` REPO NBHEADS DEPTH [left|right]" >&2
}
contrib: move the `discovery-helper.sh` script in`perf-utils` directory...
r42059 if [ $# -lt 3 ]; then
discovery-helper: add an extra argument to generate only one repo...
r42091 printusage
exit 64
contrib: move the `discovery-helper.sh` script in`perf-utils` directory...
r42059 fi
repo="$1"
shift
nbheads="$1"
shift
depth="$1"
shift
discovery-helper: add an extra argument to generate only one repo...
r42091 doleft=1
doright=1
if [ $# -gt 1 ]; then
printusage
exit 64
elif [ $# -eq 1 ]; then
if [ "$1" == "left" ]; then
doleft=1
doright=0
elif [ "$1" == "right" ]; then
doleft=0
doright=1
else
printusage
exit 64
fi
fi
discovery-helper: reflect argument value in the name of the results...
r42061 leftrepo="${repo}-${nbheads}h-${depth}d-left"
rightrepo="${repo}-${nbheads}h-${depth}d-right"
contrib: move the `discovery-helper.sh` script in`perf-utils` directory...
r42059
left="first(sort(heads(all()), 'desc'), $nbheads)"
right="last(sort(heads(all()), 'desc'), $nbheads)"
leftsubset="ancestors($left, $depth) and only($left, heads(all() - $left))"
rightsubset="ancestors($right, $depth) and only($right, heads(all() - $right))"
discovery-helper: echo the stripped revsets early...
r42060 echo '### creating left/right repositories with missing changesets:'
discovery-helper: add an extra argument to generate only one repo...
r42091 if [ $doleft -eq 1 ]; then
echo '# left revset:' '"'${leftsubset}'"'
fi
if [ $doright -eq 1 ]; then
echo '# right revset:' '"'${rightsubset}'"'
fi
discovery-helper: echo the stripped revsets early...
r42060
discovery-helper: move repository creation in a function...
r42092 buildone() {
discovery-helper: bail out if destination already exists
r42093 side="$1"
dest="$2"
revset="$3"
discovery-helper: move repository creation in a function...
r42092 echo "### building $side repository: $dest"
discovery-helper: bail out if destination already exists
r42093 if [ -e "$dest" ]; then
echo "destination repo already exists: $dest" >&2
exit 1
fi
discovery-helper: add an extra argument to generate only one repo...
r42091 echo '# cloning'
discovery-helper: use reflink copy if available...
r42094 if ! cp --recursive --reflink=always ${repo} ${dest}; then
hg clone --noupdate "${repo}" "${dest}"
fi
discovery-helper: move repository creation in a function...
r42092 echo '# stripping' '"'${revset}'"'
hg -R "${dest}" --config extensions.strip= strip --rev "$revset" --no-backup
}
if [ $doleft -eq 1 ]; then
discovery-helper: bail out if destination already exists
r42093 buildone left "$leftrepo" "$leftsubset"
discovery-helper: add an extra argument to generate only one repo...
r42091 fi
contrib: move the `discovery-helper.sh` script in`perf-utils` directory...
r42059
discovery-helper: add an extra argument to generate only one repo...
r42091 if [ $doright -eq 1 ]; then
discovery-helper: bail out if destination already exists
r42093 buildone right "$rightrepo" "$rightsubset"
discovery-helper: add an extra argument to generate only one repo...
r42091 fi