annotate tests/testlib/push-checkheads-util.sh @ 49603:3eda36e9b3d6 stable

matcher: fix issues regex flag contained in pattern (issue6759) Python 3.11 is now enforcing that flag must be at the beginning of the regex This creates a serious regression for people using Python 3.11 with an hgignore using flag in a "relre" pattern. We now detect any flags in such pattern and "prepend" our ".*" pattern after them. In addition, we now insert the flag in the regexp to only affect the pattern we are rewriting. Otherwise, the regex built from the combined pattern would these flags in the middle of it anyway. As a side effect of this last change, we fix a bug… before this change regex flag in a pattern would affect all combined patterns. That was bad and is not longer the case. The Rust code needs to be updated to fix that very bug, but we will do it in another changeset.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 16 Nov 2022 13:05:01 +0100
parents 053a5bf508da
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31973
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
1 # setup config and various utility to test new heads checks on push
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
2
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
3 cat >> $HGRCPATH <<EOF
45765
ed84a4d48910 config: add a new [command-templates] section for templates defined by hg
Martin von Zweigbergk <martinvonz@google.com>
parents: 31973
diff changeset
4 [command-templates]
31973
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
5 # simpler log output
45765
ed84a4d48910 config: add a new [command-templates] section for templates defined by hg
Martin von Zweigbergk <martinvonz@google.com>
parents: 31973
diff changeset
6 log ="{node|short} ({phase}): {desc}\n"
31973
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
7
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
8 [phases]
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
9 # non publishing server
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
10 publish=False
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
11
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
12 [extensions]
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
13 # we need to strip some changeset for some test cases
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
14 strip=
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
15
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
16 [experimental]
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
17 # enable evolution
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
18 evolution=all
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
19
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
20 [alias]
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
21 # fix date used to create obsolete markers.
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
22 debugobsolete=debugobsolete -d '0 0'
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
23 EOF
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
24
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
25 mkcommit() {
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
26 echo "$1" > "$1"
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
27 hg add "$1"
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
28 hg ci -m "$1"
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
29 }
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
30
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
31 getid() {
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
32 hg log --hidden --template '{node}\n' --rev "$1"
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
33 }
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
34
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
35 setuprepos() {
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
36 echo creating basic server and client repo
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
37 hg init server
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
38 cd server
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
39 mkcommit root
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
40 hg phase --public .
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
41 mkcommit A0
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
42 cd ..
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
43 hg clone server client
48688
053a5bf508da discovery: port _postprocessobsolete() changes from evolve, add tests
Anton Shestakov <av6@dwimlabs.net>
parents: 45765
diff changeset
44
053a5bf508da discovery: port _postprocessobsolete() changes from evolve, add tests
Anton Shestakov <av6@dwimlabs.net>
parents: 45765
diff changeset
45 if [ "$1" = "single-head" ]; then
053a5bf508da discovery: port _postprocessobsolete() changes from evolve, add tests
Anton Shestakov <av6@dwimlabs.net>
parents: 45765
diff changeset
46 echo >> "server/.hg/hgrc" "[experimental]"
053a5bf508da discovery: port _postprocessobsolete() changes from evolve, add tests
Anton Shestakov <av6@dwimlabs.net>
parents: 45765
diff changeset
47 echo >> "server/.hg/hgrc" "# enforce a single name per branch"
053a5bf508da discovery: port _postprocessobsolete() changes from evolve, add tests
Anton Shestakov <av6@dwimlabs.net>
parents: 45765
diff changeset
48 echo >> "server/.hg/hgrc" "single-head-per-branch = yes"
053a5bf508da discovery: port _postprocessobsolete() changes from evolve, add tests
Anton Shestakov <av6@dwimlabs.net>
parents: 45765
diff changeset
49 fi
31973
36006e014deb obsolescence: add test utility for the "branch replacement" logic during push
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
50 }