73c01d25fe
As noted in previous commits we are removing the use of
GIT_TEST_GETTEXT_POISON=false. These tests all relied on the facility
being off, it always is off after an earlier change, but we hadn't
removed the redundant assignments to "false" in the tests.
I'm preserving the deletion of "error" lines in 38b9197a76
(t5411:
add basic test cases for proc-receive hook, 2020-08-27), it turns out
that's useful even without GIT_TEST_GETTEXT_POISON=true in
play. Update a comment added in that commit to note that.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
61 lines
1.8 KiB
Bash
61 lines
1.8 KiB
Bash
# Create commits in <repo> and assign each commit's oid to shell variables
|
|
# given in the arguments (A, B, and C). E.g.:
|
|
#
|
|
# create_commits_in <repo> A B C
|
|
#
|
|
# NOTE: Never calling this function from a subshell since variable
|
|
# assignments will disappear when subshell exits.
|
|
create_commits_in () {
|
|
repo="$1" &&
|
|
if ! parent=$(git -C "$repo" rev-parse HEAD^{} --)
|
|
then
|
|
parent=
|
|
fi &&
|
|
T=$(git -C "$repo" write-tree) &&
|
|
shift &&
|
|
while test $# -gt 0
|
|
do
|
|
name=$1 &&
|
|
test_tick &&
|
|
if test -z "$parent"
|
|
then
|
|
oid=$(echo $name | git -C "$repo" commit-tree $T)
|
|
else
|
|
oid=$(echo $name | git -C "$repo" commit-tree -p $parent $T)
|
|
fi &&
|
|
eval $name=$oid &&
|
|
parent=$oid &&
|
|
shift ||
|
|
return 1
|
|
done &&
|
|
git -C "$repo" update-ref refs/heads/main $oid
|
|
}
|
|
|
|
# Format the output of git-push, git-show-ref and other commands to make a
|
|
# user-friendly and stable text. We can easily prepare the expect text
|
|
# without having to worry about future changes of the commit ID and spaces
|
|
# of the output. Single quotes are replaced with double quotes, because
|
|
# it is boring to prepare unquoted single quotes in expect text. We also
|
|
# remove some locale error messages. The emitted human-readable errors are
|
|
# redundant to the more machine-readable output the tests already assert.
|
|
make_user_friendly_and_stable_output () {
|
|
sed \
|
|
-e "s/ *\$//" \
|
|
-e "s/ */ /g" \
|
|
-e "s/'/\"/g" \
|
|
-e "s/ / /g" \
|
|
-e "s/$A/<COMMIT-A>/g" \
|
|
-e "s/$B/<COMMIT-B>/g" \
|
|
-e "s/$TAG/<TAG-v123>/g" \
|
|
-e "s/$ZERO_OID/<ZERO-OID>/g" \
|
|
-e "s/$(echo $A | cut -c1-7)[0-9a-f]*/<OID-A>/g" \
|
|
-e "s/$(echo $B | cut -c1-7)[0-9a-f]*/<OID-B>/g" \
|
|
-e "s#To $URL_PREFIX/upstream.git#To <URL/of/upstream.git>#" \
|
|
-e "/^error: / d"
|
|
}
|
|
|
|
filter_out_user_friendly_and_stable_output () {
|
|
make_user_friendly_and_stable_output |
|
|
sed -n ${1+"$@"}
|
|
}
|