view tests/testlib/push-checkheads-util.sh @ 44802:e0414fcd35e0

rust-filepatterns: match exact `rootglob`s with a `HashSet`, not in the regex This optimization yields some very interesting results in `rootglob`-heavy repositories. I build a test repository of the following structure: ``` root /<uuid>/build/empty_file ... repeat for 4000 entries ``` and a `.hgignore` containing the corresponding 4000 `rootglob` entries pointing to all `build/` folders. Rust+c `hg status` goes from 350ms down to 110ms. Differential Revision: https://phab.mercurial-scm.org/D8491
author Raphaël Gomès <rgomes@octobus.net>
date Wed, 06 May 2020 11:17:27 +0200
parents 36006e014deb
children ed84a4d48910
line wrap: on
line source

# setup config and various utility to test new heads checks on push

cat >> $HGRCPATH <<EOF
[ui]
# simpler log output
logtemplate ="{node|short} ({phase}): {desc}\n"

[phases]
# non publishing server
publish=False

[extensions]
# we need to strip some changeset for some test cases
strip=

[experimental]
# enable evolution
evolution=all

[alias]
# fix date used to create obsolete markers.
debugobsolete=debugobsolete -d '0 0'
EOF

mkcommit() {
   echo "$1" > "$1"
   hg add "$1"
   hg ci -m "$1"
}

getid() {
   hg log --hidden --template '{node}\n' --rev "$1"
}

setuprepos() {
    echo creating basic server and client repo
    hg init server
    cd server
    mkcommit root
    hg phase --public .
    mkcommit A0
    cd ..
    hg clone server client
}