tests/testlib/push-checkheads-util.sh
author Matt Harbison <matt_harbison@yahoo.com>
Mon, 13 Jun 2022 11:06:33 -0400
changeset 49317 709e5f7eec1f
parent 48688 053a5bf508da
permissions -rw-r--r--
windows: prevent bytes from being passed to registry APIs There was a TortoiseHg bug report in this area[1], and from inspection, it looks like passing `b""` as `valname` would fail to convert to unicode. The underlying API allows both `""` and `NULL` to return the default value for the key. [1] https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/5803
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
}