Mercurial > public > mercurial-scm > hg-stable
view tests/testlib/push-checkheads-util.sh @ 48702:053a5bf508da
discovery: port _postprocessobsolete() changes from evolve, add tests
Let's make this function obsolescence-aware as well. Now we check that
revisions are not obsolete first, and only then check that they are going to be
common after exchange.
The tests make sure that rewriting changesets doesn't confuse head computation.
They rely on experimental.single-head-per-branch feature to show that remote
correctly sees the expected result (i.e. either aborts the push or allows it to
succeed). They are ported from evolve as well.
Differential Revision: https://phab.mercurial-scm.org/D12098
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Tue, 04 Jan 2022 23:38:39 +0300 |
parents | ed84a4d48910 |
children |
line wrap: on
line source
# setup config and various utility to test new heads checks on push cat >> $HGRCPATH <<EOF [command-templates] # simpler log output log ="{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 if [ "$1" = "single-head" ]; then echo >> "server/.hg/hgrc" "[experimental]" echo >> "server/.hg/hgrc" "# enforce a single name per branch" echo >> "server/.hg/hgrc" "single-head-per-branch = yes" fi }