1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-10-30 05:47:53 +01:00

Merge branch 'js/default-branch-name-adjust-t5411'

Prepare a test script to transition of the default branch name to
'main'.

* js/default-branch-name-adjust-t5411:
  t5411: finish preparing for `main` being the default branch name
  t5411: adjust the remaining support files for init.defaultBranch=main
  t5411: start adjusting the support files for init.defaultBranch=main
  t5411: start using the default branch name "main"
This commit is contained in:
Junio C Hamano 2020-11-09 14:06:29 -08:00
commit 8502a5782b
32 changed files with 726 additions and 723 deletions

View file

@ -5,13 +5,16 @@
test_description='Test proc-receive hook'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
. ./test-lib.sh
. "$TEST_DIRECTORY"/t5411/common-functions.sh
setup_upstream_and_workbench () {
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "setup upstream and workbench" '
rm -rf upstream.git &&
rm -rf workbench &&
@ -25,10 +28,10 @@ setup_upstream_and_workbench () {
git config core.abbrev 7 &&
git tag -m "v123" v123 $A &&
git remote add origin ../upstream.git &&
git push origin master &&
git update-ref refs/heads/master $A $B &&
git push origin main &&
git update-ref refs/heads/main $A $B &&
git -C ../upstream.git update-ref \
refs/heads/master $A $B
refs/heads/main $A $B
) &&
TAG=$(git -C workbench rev-parse v123) &&
@ -99,8 +102,8 @@ start_httpd
# Re-initialize the upstream repository and local workbench.
setup_upstream_and_workbench
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "setup for HTTP protocol" '
git -C upstream.git config http.receivepack true &&
upstream="$HTTPD_DOCUMENT_ROOT_PATH/upstream.git" &&

View file

@ -28,7 +28,7 @@ create_commits_in () {
shift ||
return 1
done &&
git -C "$repo" update-ref refs/heads/master $oid
git -C "$repo" update-ref refs/heads/main $oid
}
# Format the output of git-push, git-show-ref and other commands to make a

View file

@ -6,12 +6,12 @@ test_expect_success "setup proc-receive hook" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic1" \
-r "ok refs/for/main/topic1" \
-r "option fall-through" \
-r "ok refs/for/master/topic2" \
-r "ok refs/for/main/topic2" \
-r "option refname refs/for/changes/23/123/1" \
-r "option new-oid $A" \
-r "ok refs/for/master/topic2" \
-r "ok refs/for/main/topic2" \
-r "option refname refs/for/changes/24/124/2" \
-r "option old-oid $B" \
-r "option new-oid $A" \
@ -20,26 +20,26 @@ test_expect_success "setup proc-receive hook" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : (B) refs/for/master/topic1(A) foo(A) refs/for/next/topic(A) refs/for/master/topic2(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : (B) refs/for/main/topic1(A) foo(A) refs/for/next/topic(A) refs/for/main/topic2(A)
test_expect_success "proc-receive: report status v1" '
{
if test -z "$GIT_DEFAULT_HASH" || test "$GIT_DEFAULT_HASH" = "sha1"
then
printf "%s %s refs/heads/master\0report-status\n" \
printf "%s %s refs/heads/main\0report-status\n" \
$A $B | packetize
else
printf "%s %s refs/heads/master\0report-status object-format=$GIT_DEFAULT_HASH\n" \
printf "%s %s refs/heads/main\0report-status object-format=$GIT_DEFAULT_HASH\n" \
$A $B | packetize
fi &&
printf "%s %s refs/for/master/topic1\n" \
printf "%s %s refs/for/main/topic1\n" \
$ZERO_OID $A | packetize &&
printf "%s %s refs/heads/foo\n" \
$ZERO_OID $A | packetize &&
printf "%s %s refs/for/next/topic\n" \
$ZERO_OID $A | packetize &&
printf "%s %s refs/for/master/topic2\n" \
printf "%s %s refs/for/main/topic2\n" \
$ZERO_OID $A | packetize &&
printf 0000 &&
printf "" | git -C "$upstream" pack-objects --stdout
@ -48,35 +48,35 @@ test_expect_success "proc-receive: report status v1" '
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
# pre-receive hook
pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic1
pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic1
pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/foo
pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic2
pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic2
# proc-receive hook
proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic1
proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic1
proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic2
proc-receive> ok refs/for/master/topic1
proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic2
proc-receive> ok refs/for/main/topic1
proc-receive> option fall-through
proc-receive> ok refs/for/master/topic2
proc-receive> ok refs/for/main/topic2
proc-receive> option refname refs/for/changes/23/123/1
proc-receive> option new-oid <COMMIT-A>
proc-receive> ok refs/for/master/topic2
proc-receive> ok refs/for/main/topic2
proc-receive> option refname refs/for/changes/24/124/2
proc-receive> option old-oid <COMMIT-B>
proc-receive> option new-oid <COMMIT-A>
proc-receive> option forced-update
proc-receive> ng refs/for/next/topic target branch not exist
000eunpack ok
0019ok refs/heads/master
001eok refs/for/master/topic1
0017ok refs/heads/main
001cok refs/for/main/topic1
0016ok refs/heads/foo
0033ng refs/for/next/topic target branch not exist
001eok refs/for/master/topic2
001cok refs/for/main/topic2
0000# post-receive hook
post-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
post-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic1
post-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
post-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic1
post-receive< <ZERO-OID> <COMMIT-A> refs/heads/foo
post-receive< <ZERO-OID> <COMMIT-A> refs/for/changes/23/123/1
post-receive< <COMMIT-B> <COMMIT-A> refs/for/changes/24/124/2
@ -86,9 +86,9 @@ test_expect_success "proc-receive: report status v1" '
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/for/master/topic1
<COMMIT-A> refs/for/main/topic1
<COMMIT-A> refs/heads/foo
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -1,39 +1,39 @@
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git-push : master(B) next(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git-push : main(B) next(A)
test_expect_success "git-push ($PROTOCOL)" '
git -C workbench push origin \
$B:refs/heads/master \
$B:refs/heads/main \
HEAD:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
To <URL/of/upstream.git>
<OID-A>..<OID-B> <COMMIT-B> -> master
<OID-A>..<OID-B> <COMMIT-B> -> main
* [new branch] HEAD -> next
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(B) next(A)
# Refs of workbench: master(A) tags/v123
# git-push --atomic: master(A) next(B)
# Refs of upstream : main(B) next(A)
# Refs of workbench: main(A) tags/v123
# git-push --atomic: main(A) next(B)
test_expect_success "git-push --atomic ($PROTOCOL)" '
test_must_fail git -C workbench push --atomic origin \
master \
main \
$B:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out |
@ -43,28 +43,28 @@ test_expect_success "git-push --atomic ($PROTOCOL)" '
>actual &&
cat >expect <<-EOF &&
To <URL/of/upstream.git>
! [rejected] master -> master (non-fast-forward)
! [rejected] main -> main (non-fast-forward)
! [rejected] <COMMIT-B> -> next (atomic push failed)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(B) next(A)
# Refs of workbench: master(A) tags/v123
# git-push : master(A) next(B)
# Refs of upstream : main(B) next(A)
# Refs of workbench: main(A) tags/v123
# git-push : main(A) next(B)
test_expect_success "non-fast-forward git-push ($PROTOCOL)" '
test_must_fail git \
-C workbench \
-c advice.pushUpdateRejected=false \
push origin \
master \
main \
$B:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
@ -75,48 +75,48 @@ test_expect_success "non-fast-forward git-push ($PROTOCOL)" '
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/next
To <URL/of/upstream.git>
<OID-A>..<OID-B> <COMMIT-B> -> next
! [rejected] master -> master (non-fast-forward)
! [rejected] main -> main (non-fast-forward)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
<COMMIT-B> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(B) next(B)
# Refs of workbench: master(A) tags/v123
# git-push -f : master(A) NULL tags/v123 refs/review/master/topic(A) a/b/c(A)
# Refs of upstream : main(B) next(B)
# Refs of workbench: main(A) tags/v123
# git-push -f : main(A) NULL tags/v123 refs/review/main/topic(A) a/b/c(A)
test_expect_success "git-push -f ($PROTOCOL)" '
git -C workbench push -f origin \
refs/tags/v123 \
:refs/heads/next \
master \
master:refs/review/master/topic \
main \
main:refs/review/main/topic \
HEAD:refs/heads/a/b/c \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: pre-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: pre-receive< <COMMIT-B> <ZERO-OID> refs/heads/next
remote: pre-receive< <ZERO-OID> <TAG-v123> refs/tags/v123
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/review/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/review/main/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/a/b/c
remote: # post-receive hook
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: post-receive< <COMMIT-B> <ZERO-OID> refs/heads/next
remote: post-receive< <ZERO-OID> <TAG-v123> refs/tags/v123
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/review/master/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/review/main/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/a/b/c
To <URL/of/upstream.git>
+ <OID-B>...<OID-A> master -> master (forced update)
+ <OID-B>...<OID-A> main -> main (forced update)
- [deleted] next
* [new tag] v123 -> v123
* [new reference] master -> refs/review/master/topic
* [new reference] main -> refs/review/main/topic
* [new branch] HEAD -> a/b/c
EOF
test_cmp expect actual &&
@ -124,19 +124,19 @@ test_expect_success "git-push -f ($PROTOCOL)" '
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/a/b/c
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/review/master/topic
<COMMIT-A> refs/heads/main
<COMMIT-A> refs/review/main/topic
<TAG-v123> refs/tags/v123
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) tags/v123 refs/review/master/topic(A) a/b/c(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) tags/v123 refs/review/main/topic(A) a/b/c(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL)" '
(
cd "$upstream" &&
git update-ref -d refs/review/master/topic &&
git update-ref -d refs/review/main/topic &&
git update-ref -d refs/tags/v123 &&
git update-ref -d refs/heads/a/b/c
)

View file

@ -1,21 +1,21 @@
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git-push : master(B) next(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git-push : main(B) next(A)
test_expect_success "git-push ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
$B:refs/heads/master \
$B:refs/heads/main \
HEAD:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
To <URL/of/upstream.git>
<COMMIT-B>:refs/heads/master <OID-A>..<OID-B>
<COMMIT-B>:refs/heads/main <OID-A>..<OID-B>
* HEAD:refs/heads/next [new branch]
Done
EOF
@ -23,18 +23,18 @@ test_expect_success "git-push ($PROTOCOL/porcelain)" '
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(B) next(A)
# Refs of workbench: master(A) tags/v123
# git-push --atomic: master(A) next(B)
# Refs of upstream : main(B) next(A)
# Refs of workbench: main(A) tags/v123
# git-push --atomic: main(A) next(B)
test_expect_success "git-push --atomic ($PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --atomic --porcelain origin \
master \
main \
$B:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out |
@ -45,28 +45,28 @@ test_expect_success "git-push --atomic ($PROTOCOL/porcelain)" '
>actual &&
cat >expect <<-EOF &&
To <URL/of/upstream.git>
! refs/heads/master:refs/heads/master [rejected] (non-fast-forward)
! refs/heads/main:refs/heads/main [rejected] (non-fast-forward)
! <COMMIT-B>:refs/heads/next [rejected] (atomic push failed)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(B) next(A)
# Refs of workbench: master(A) tags/v123
# git-push : master(A) next(B)
# Refs of upstream : main(B) next(A)
# Refs of workbench: main(A) tags/v123
# git-push : main(A) next(B)
test_expect_success "non-fast-forward git-push ($PROTOCOL/porcelain)" '
test_must_fail git \
-C workbench \
-c advice.pushUpdateRejected=false \
push --porcelain origin \
master \
main \
$B:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
@ -77,49 +77,49 @@ test_expect_success "non-fast-forward git-push ($PROTOCOL/porcelain)" '
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/next
To <URL/of/upstream.git>
<COMMIT-B>:refs/heads/next <OID-A>..<OID-B>
! refs/heads/master:refs/heads/master [rejected] (non-fast-forward)
! refs/heads/main:refs/heads/main [rejected] (non-fast-forward)
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
<COMMIT-B> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(B) next(B)
# Refs of workbench: master(A) tags/v123
# git-push -f : master(A) NULL tags/v123 refs/review/master/topic(A) a/b/c(A)
# Refs of upstream : main(B) next(B)
# Refs of workbench: main(A) tags/v123
# git-push -f : main(A) NULL tags/v123 refs/review/main/topic(A) a/b/c(A)
test_expect_success "git-push -f ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain -f origin \
refs/tags/v123 \
:refs/heads/next \
master \
master:refs/review/master/topic \
main \
main:refs/review/main/topic \
HEAD:refs/heads/a/b/c \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: pre-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: pre-receive< <COMMIT-B> <ZERO-OID> refs/heads/next
remote: pre-receive< <ZERO-OID> <TAG-v123> refs/tags/v123
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/review/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/review/main/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/a/b/c
remote: # post-receive hook
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: post-receive< <COMMIT-B> <ZERO-OID> refs/heads/next
remote: post-receive< <ZERO-OID> <TAG-v123> refs/tags/v123
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/review/master/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/review/main/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/a/b/c
To <URL/of/upstream.git>
+ refs/heads/master:refs/heads/master <OID-B>...<OID-A> (forced update)
+ refs/heads/main:refs/heads/main <OID-B>...<OID-A> (forced update)
- :refs/heads/next [deleted]
* refs/tags/v123:refs/tags/v123 [new tag]
* refs/heads/master:refs/review/master/topic [new reference]
* refs/heads/main:refs/review/main/topic [new reference]
* HEAD:refs/heads/a/b/c [new branch]
Done
EOF
@ -128,19 +128,19 @@ test_expect_success "git-push -f ($PROTOCOL/porcelain)" '
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/a/b/c
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/review/master/topic
<COMMIT-A> refs/heads/main
<COMMIT-A> refs/review/main/topic
<TAG-v123> refs/tags/v123
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) tags/v123 refs/review/master/topic(A) a/b/c(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) tags/v123 refs/review/main/topic(A) a/b/c(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL/porcelain)" '
(
cd "$upstream" &&
git update-ref -d refs/review/master/topic &&
git update-ref -d refs/review/main/topic &&
git update-ref -d refs/tags/v123 &&
git update-ref -d refs/heads/a/b/c
)

View file

@ -5,25 +5,25 @@ test_expect_success "setup pre-receive hook ($PROTOCOL)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git-push : master(B) next(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git-push : main(B) next(A)
test_expect_success "git-push is declined ($PROTOCOL)" '
test_must_fail git -C workbench push origin \
$B:refs/heads/master \
$B:refs/heads/main \
HEAD:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
To <URL/of/upstream.git>
! [remote rejected] <COMMIT-B> -> master (pre-receive hook declined)
! [remote rejected] <COMMIT-B> -> main (pre-receive hook declined)
! [remote rejected] HEAD -> next (pre-receive hook declined)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -5,18 +5,18 @@ test_expect_success "setup pre-receive hook ($PROTOCOL/porcelain)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git-push : master(B) next(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git-push : main(B) next(A)
test_expect_success "git-push is declined ($PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
$B:refs/heads/master \
$B:refs/heads/main \
HEAD:refs/heads/next \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
To <URL/of/upstream.git>
! <COMMIT-B>:refs/heads/master [remote rejected] (pre-receive hook declined)
! <COMMIT-B>:refs/heads/main [remote rejected] (pre-receive hook declined)
! HEAD:refs/heads/next [remote rejected] (pre-receive hook declined)
Done
EOF
@ -24,7 +24,7 @@ test_expect_success "git-push is declined ($PROTOCOL/porcelain)" '
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -1,64 +1,64 @@
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : next(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : next(A) refs/for/main/topic(A)
test_expect_success "proc-receive: no hook, fail to push special ref ($PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:next \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: error: cannot find hook "proc-receive"
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
To <URL/of/upstream.git>
* [new branch] HEAD -> next
! [remote rejected] HEAD -> refs/for/master/topic (fail to run proc-receive hook)
! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) next(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) next(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL)" '
git -C "$upstream" update-ref -d refs/heads/next
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push --atomic: (B) next(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push --atomic: (B) next(A) refs/for/main/topic(A)
test_expect_success "proc-receive: no hook, all failed for atomic push ($PROTOCOL)" '
test_must_fail git -C workbench push --atomic origin \
$B:master \
$B:main \
HEAD:next \
HEAD:refs/for/master/topic >out 2>&1 &&
HEAD:refs/for/main/topic >out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: error: cannot find hook "proc-receive"
To <URL/of/upstream.git>
! [remote rejected] <COMMIT-B> -> master (fail to run proc-receive hook)
! [remote rejected] <COMMIT-B> -> main (fail to run proc-receive hook)
! [remote rejected] HEAD -> next (fail to run proc-receive hook)
! [remote rejected] HEAD -> refs/for/master/topic (fail to run proc-receive hook)
! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -1,66 +1,66 @@
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : next(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : next(A) refs/for/main/topic(A)
test_expect_success "proc-receive: no hook, fail to push special ref ($PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
HEAD:next \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: error: cannot find hook "proc-receive"
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
To <URL/of/upstream.git>
* HEAD:refs/heads/next [new branch]
! HEAD:refs/for/master/topic [remote rejected] (fail to run proc-receive hook)
! HEAD:refs/for/main/topic [remote rejected] (fail to run proc-receive hook)
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) next(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) next(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL/porcelain)" '
git -C "$upstream" update-ref -d refs/heads/next
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push --atomic: (B) next(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push --atomic: (B) next(A) refs/for/main/topic(A)
test_expect_success "proc-receive: no hook, all failed for atomic push ($PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain --atomic origin \
$B:master \
$B:main \
HEAD:next \
HEAD:refs/for/master/topic >out 2>&1 &&
HEAD:refs/for/main/topic >out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: error: cannot find hook "proc-receive"
To <URL/of/upstream.git>
! <COMMIT-B>:refs/heads/master [remote rejected] (fail to run proc-receive hook)
! <COMMIT-B>:refs/heads/main [remote rejected] (fail to run proc-receive hook)
! HEAD:refs/heads/next [remote rejected] (fail to run proc-receive hook)
! HEAD:refs/for/master/topic [remote rejected] (fail to run proc-receive hook)
! HEAD:refs/for/main/topic [remote rejected] (fail to run proc-receive hook)
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -5,12 +5,12 @@ test_expect_success "setup proc-receive hook (unknown version, $PROTOCOL)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
@ -20,7 +20,7 @@ test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL)" '
<actual >actual-report &&
cat >expect <<-EOF &&
To <URL/of/upstream.git>
! [remote rejected] HEAD -> refs/for/master/topic (fail to run proc-receive hook)
! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook)
EOF
test_cmp expect actual-report &&
@ -36,7 +36,7 @@ test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL)" '
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -48,30 +48,30 @@ test_expect_success "setup proc-receive hook (hook --die-version, $PROTOCOL)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: bad protocol (hook --die-version, $PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: fatal: bad protocol version: 1
remote: error: proc-receive version "0" is not supported
To <URL/of/upstream.git>
! [remote rejected] HEAD -> refs/for/master/topic (fail to run proc-receive hook)
! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -83,21 +83,21 @@ test_expect_success "setup proc-receive hook (hook --die-readline, $PROTOCOL)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: bad protocol (hook --die-readline, $PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
grep "remote: fatal: protocol error: expected \"old new ref\", got \"<ZERO-OID> <COMMIT-A> refs/for/master/topic\"" actual &&
grep "remote: fatal: protocol error: expected \"old new ref\", got \"<ZERO-OID> <COMMIT-A> refs/for/main/topic\"" actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -109,38 +109,38 @@ test_expect_success "setup proc-receive hook (no report, $PROTOCOL)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : next(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : next(A) refs/for/main/topic(A)
test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:refs/heads/next \
HEAD:refs/for/master/topic >out 2>&1 &&
HEAD:refs/for/main/topic >out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
To <URL/of/upstream.git>
* [new branch] HEAD -> next
! [remote rejected] HEAD -> refs/for/master/topic (proc-receive failed to report status)
! [remote rejected] HEAD -> refs/for/main/topic (proc-receive failed to report status)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) next(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) next(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL)" '
git -C "$upstream" update-ref -d refs/heads/next
@ -154,29 +154,29 @@ test_expect_success "setup proc-receive hook (no ref, $PROTOCOL)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:refs/for/master/topic\
HEAD:refs/for/main/topic\
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok
remote: error: proc-receive reported incomplete status line: "ok"
To <URL/of/upstream.git>
! [remote rejected] HEAD -> refs/for/master/topic (proc-receive failed to report status)
! [remote rejected] HEAD -> refs/for/main/topic (proc-receive failed to report status)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -185,33 +185,33 @@ test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "xx refs/for/master/topic"
-r "xx refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> xx refs/for/master/topic
remote: error: proc-receive reported bad status "xx" on ref "refs/for/master/topic"
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> xx refs/for/main/topic
remote: error: proc-receive reported bad status "xx" on ref "refs/for/main/topic"
To <URL/of/upstream.git>
! [remote rejected] HEAD -> refs/for/master/topic (proc-receive failed to report status)
! [remote rejected] HEAD -> refs/for/main/topic (proc-receive failed to report status)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -5,12 +5,12 @@ test_expect_success "setup proc-receive hook (unknown version, $PROTOCOL/porcela
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
@ -20,7 +20,7 @@ test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL/porc
<actual >actual-report &&
cat >expect <<-EOF &&
To <URL/of/upstream.git>
! HEAD:refs/for/master/topic [remote rejected] (fail to run proc-receive hook)
! HEAD:refs/for/main/topic [remote rejected] (fail to run proc-receive hook)
Done
EOF
test_cmp expect actual-report &&
@ -37,7 +37,7 @@ test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL/porc
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -49,39 +49,39 @@ test_expect_success "setup proc-receive hook (no report, $PROTOCOL/porcelain)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : next(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : next(A) refs/for/main/topic(A)
test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
HEAD:refs/heads/next \
HEAD:refs/for/master/topic >out 2>&1 &&
HEAD:refs/for/main/topic >out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
To <URL/of/upstream.git>
* HEAD:refs/heads/next [new branch]
! HEAD:refs/for/master/topic [remote rejected] (proc-receive failed to report status)
! HEAD:refs/for/main/topic [remote rejected] (proc-receive failed to report status)
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) next(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) next(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL/porcelain)" '
git -C "$upstream" update-ref -d refs/heads/next
@ -95,30 +95,30 @@ test_expect_success "setup proc-receive hook (no ref, $PROTOCOL/porcelain)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic\
HEAD:refs/for/main/topic\
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok
remote: error: proc-receive reported incomplete status line: "ok"
To <URL/of/upstream.git>
! HEAD:refs/for/master/topic [remote rejected] (proc-receive failed to report status)
! HEAD:refs/for/main/topic [remote rejected] (proc-receive failed to report status)
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -127,34 +127,34 @@ test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL/porcelai
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "xx refs/for/master/topic"
-r "xx refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> xx refs/for/master/topic
remote: error: proc-receive reported bad status "xx" on ref "refs/for/master/topic"
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> xx refs/for/main/topic
remote: error: proc-receive reported bad status "xx" on ref "refs/for/main/topic"
To <URL/of/upstream.git>
! HEAD:refs/for/master/topic [remote rejected] (proc-receive failed to report status)
! HEAD:refs/for/main/topic [remote rejected] (proc-receive failed to report status)
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -2,32 +2,32 @@ test_expect_success "setup proc-receive hook (ng, no message, $PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ng refs/for/master/topic"
-r "ng refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ng refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ng refs/for/main/topic
To <URL/of/upstream.git>
! [remote rejected] HEAD -> refs/for/master/topic (failed)
! [remote rejected] HEAD -> refs/for/main/topic (failed)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -36,32 +36,32 @@ test_expect_success "setup proc-receive hook (ng message, $PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ng refs/for/master/topic error msg"
-r "ng refs/for/main/topic error msg"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ng refs/for/master/topic error msg
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ng refs/for/main/topic error msg
To <URL/of/upstream.git>
! [remote rejected] HEAD -> refs/for/master/topic (error msg)
! [remote rejected] HEAD -> refs/for/main/topic (error msg)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -2,33 +2,33 @@ test_expect_success "setup proc-receive hook (ng, no message, $PROTOCOL/porcelai
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ng refs/for/master/topic"
-r "ng refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ng refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ng refs/for/main/topic
To <URL/of/upstream.git>
! HEAD:refs/for/master/topic [remote rejected] (failed)
! HEAD:refs/for/main/topic [remote rejected] (failed)
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -37,33 +37,33 @@ test_expect_success "setup proc-receive hook (ng message, $PROTOCOL/porcelain)"
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ng refs/for/master/topic error msg"
-r "ng refs/for/main/topic error msg"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ng refs/for/master/topic error msg
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ng refs/for/main/topic error msg
To <URL/of/upstream.git>
! HEAD:refs/for/master/topic [remote rejected] (error msg)
! HEAD:refs/for/main/topic [remote rejected] (error msg)
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -2,44 +2,44 @@ test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/master"
-r "ok refs/heads/main"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : (B) refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : (B) refs/for/main/topic
test_expect_success "proc-receive: report unexpected ref ($PROTOCOL)" '
test_must_fail git -C workbench push origin \
$B:refs/heads/master \
HEAD:refs/for/master/topic \
$B:refs/heads/main \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/heads/master
remote: error: proc-receive reported status on unexpected ref: refs/heads/master
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/heads/main
remote: error: proc-receive reported status on unexpected ref: refs/heads/main
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
To <URL/of/upstream.git>
<OID-A>..<OID-B> <COMMIT-B> -> master
! [remote rejected] HEAD -> refs/for/master/topic (proc-receive failed to report status)
<OID-A>..<OID-B> <COMMIT-B> -> main
! [remote rejected] HEAD -> refs/for/main/topic (proc-receive failed to report status)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
EOF
test_cmp expect actual
'
# Refs of upstream : master(B)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(B)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL)" '
git -C "$upstream" update-ref refs/heads/master $A
git -C "$upstream" update-ref refs/heads/main $A
'

View file

@ -2,45 +2,45 @@ test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL/porcelai
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/master"
-r "ok refs/heads/main"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : (B) refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : (B) refs/for/main/topic
test_expect_success "proc-receive: report unexpected ref ($PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
$B:refs/heads/master \
HEAD:refs/for/master/topic \
$B:refs/heads/main \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/heads/master
remote: error: proc-receive reported status on unexpected ref: refs/heads/master
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/heads/main
remote: error: proc-receive reported status on unexpected ref: refs/heads/main
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
To <URL/of/upstream.git>
<COMMIT-B>:refs/heads/master <OID-A>..<OID-B>
! HEAD:refs/for/master/topic [remote rejected] (proc-receive failed to report status)
<COMMIT-B>:refs/heads/main <OID-A>..<OID-B>
! HEAD:refs/for/main/topic [remote rejected] (proc-receive failed to report status)
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
EOF
test_cmp expect actual
'
# Refs of upstream : master(B)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(B)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL/porcelain)" '
git -C "$upstream" update-ref refs/heads/master $A
git -C "$upstream" update-ref refs/heads/main $A
'

View file

@ -2,12 +2,12 @@ test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic"
-r "ok refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/a/b/c/my/topic
test_expect_success "proc-receive: report unknown reference ($PROTOCOL)" '
test_must_fail git -C workbench push origin \
@ -19,8 +19,8 @@ test_expect_success "proc-receive: report unknown reference ($PROTOCOL)" '
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic
remote: proc-receive> ok refs/for/master/topic
remote: error: proc-receive reported status on unknown ref: refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: error: proc-receive reported status on unknown ref: refs/for/main/topic
To <URL/of/upstream.git>
! [remote rejected] HEAD -> refs/for/a/b/c/my/topic (proc-receive failed to report status)
EOF
@ -28,7 +28,7 @@ test_expect_success "proc-receive: report unknown reference ($PROTOCOL)" '
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -2,12 +2,12 @@ test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL/porcelai
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic"
-r "ok refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/a/b/c/my/topic
test_expect_success "proc-receive: report unknown reference ($PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
@ -19,8 +19,8 @@ test_expect_success "proc-receive: report unknown reference ($PROTOCOL/porcelain
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic
remote: proc-receive> ok refs/for/master/topic
remote: error: proc-receive reported status on unknown ref: refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: error: proc-receive reported status on unknown ref: refs/for/main/topic
To <URL/of/upstream.git>
! HEAD:refs/for/a/b/c/my/topic [remote rejected] (proc-receive failed to report status)
Done
@ -29,7 +29,7 @@ test_expect_success "proc-receive: report unknown reference ($PROTOCOL/porcelain
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -3,19 +3,19 @@ test_expect_success "setup proc-receive hook and disable push-options ($PROTOCOL
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic"
-r "ok refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push -o ... : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push -o ... : refs/for/main/topic
test_expect_success "proc-receive: not support push options ($PROTOCOL)" '
test_must_fail git -C workbench push \
-o issue=123 \
-o reviewer=user1 \
origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
test_i18ngrep "fatal: the receiving end does not support push options" \
@ -23,7 +23,7 @@ test_expect_success "proc-receive: not support push options ($PROTOCOL)" '
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -32,9 +32,9 @@ test_expect_success "enable push options ($PROTOCOL)" '
git -C "$upstream" config receive.advertisePushOptions true
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push -o ... : next(A) refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push -o ... : next(A) refs/for/main/topic
test_expect_success "proc-receive: push with options ($PROTOCOL)" '
git -C workbench push \
--atomic \
@ -42,38 +42,38 @@ test_expect_success "proc-receive: push with options ($PROTOCOL)" '
-o reviewer=user1 \
origin \
HEAD:refs/heads/next \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive: atomic push_options
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive< issue=123
remote: proc-receive< reviewer=user1
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
To <URL/of/upstream.git>
* [new branch] HEAD -> next
* [new reference] HEAD -> refs/for/master/topic
* [new reference] HEAD -> refs/for/main/topic
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) next(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) next(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL)" '
git -C "$upstream" update-ref -d refs/heads/next
'

View file

@ -3,20 +3,20 @@ test_expect_success "setup proc-receive hook and disable push-options ($PROTOCOL
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic"
-r "ok refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push -o ... : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push -o ... : refs/for/main/topic
test_expect_success "proc-receive: not support push options ($PROTOCOL/porcelain)" '
test_must_fail git -C workbench push \
--porcelain \
-o issue=123 \
-o reviewer=user1 \
origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
test_i18ngrep "fatal: the receiving end does not support push options" \
@ -24,7 +24,7 @@ test_expect_success "proc-receive: not support push options ($PROTOCOL/porcelain
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -33,9 +33,9 @@ test_expect_success "enable push options ($PROTOCOL/porcelain)" '
git -C "$upstream" config receive.advertisePushOptions true
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push -o ... : next(A) refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push -o ... : next(A) refs/for/main/topic
test_expect_success "proc-receive: push with options ($PROTOCOL/porcelain)" '
git -C workbench push \
--porcelain \
@ -44,39 +44,39 @@ test_expect_success "proc-receive: push with options ($PROTOCOL/porcelain)" '
-o reviewer=user1 \
origin \
HEAD:refs/heads/next \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive: atomic push_options
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive< issue=123
remote: proc-receive< reviewer=user1
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
To <URL/of/upstream.git>
* HEAD:refs/heads/next [new branch]
* HEAD:refs/for/master/topic [new reference]
* HEAD:refs/for/main/topic [new reference]
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
<COMMIT-A> refs/heads/next
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) next(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) next(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL/porcelain)" '
git -C "$upstream" update-ref -d refs/heads/next
'

View file

@ -2,34 +2,34 @@ test_expect_success "setup proc-receive hook (ok, $PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic"
-r "ok refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: ok ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
To <URL/of/upstream.git>
* [new reference] HEAD -> refs/for/master/topic
* [new reference] HEAD -> refs/for/main/topic
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -2,35 +2,35 @@ test_expect_success "setup proc-receive hook (ok, $PROTOCOL/porcelain)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic"
-r "ok refs/for/main/topic"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic
test_expect_success "proc-receive: ok ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
To <URL/of/upstream.git>
* HEAD:refs/for/master/topic [new reference]
* HEAD:refs/for/main/topic [new reference]
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -7,24 +7,24 @@ test_expect_success "setup proc-receive hook (option without matching ok, $PROTO
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option without matching ok ($PROTOCOL)" '
test_must_fail git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option old-oid <COMMIT-B>
remote: error: proc-receive reported "option" without a matching "ok/ng" directive
To <URL/of/upstream.git>
! [remote rejected] HEAD -> refs/for/master/topic (proc-receive failed to report status)
! [remote rejected] HEAD -> refs/for/main/topic (proc-receive failed to report status)
EOF
test_cmp expect actual
'
@ -33,25 +33,25 @@ test_expect_success "setup proc-receive hook (option refname, $PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/123/head"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option refname ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/pull/123/head
@ -65,25 +65,25 @@ test_expect_success "setup proc-receive hook (option refname and forced-update,
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/123/head" \
-r "option forced-update"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option refname and forced-update ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option forced-update
remote: # post-receive hook
@ -98,26 +98,26 @@ test_expect_success "setup proc-receive hook (option refname and old-oid, $PROTO
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/123/head" \
-r "option old-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option refname and old-oid ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option old-oid <COMMIT-B>
remote: # post-receive hook
@ -132,30 +132,30 @@ test_expect_success "setup proc-receive hook (option old-oid, $PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option old-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option old-oid ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-B>
remote: # post-receive hook
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/for/master/topic
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/for/main/topic
To <URL/of/upstream.git>
<OID-B>..<OID-A> HEAD -> refs/for/master/topic
<OID-B>..<OID-A> HEAD -> refs/for/main/topic
EOF
test_cmp expect actual
'
@ -164,32 +164,32 @@ test_expect_success "setup proc-receive hook (option old-oid and new-oid, $PROTO
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option old-oid $A" \
-r "option new-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option old-oid and new-oid ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/master/topic
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/main/topic
To <URL/of/upstream.git>
<OID-A>..<OID-B> HEAD -> refs/for/master/topic
<OID-A>..<OID-B> HEAD -> refs/for/main/topic
EOF
test_cmp expect actual
'
@ -201,7 +201,7 @@ test_expect_success "setup proc-receive hook (report with multiple rewrites, $PR
-r "ok refs/for/a/b/c/topic" \
-r "ok refs/for/next/topic" \
-r "option refname refs/pull/123/head" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/124/head" \
-r "option old-oid $B" \
-r "option forced-update" \
@ -209,29 +209,29 @@ test_expect_success "setup proc-receive hook (report with multiple rewrites, $PR
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report with multiple rewrites ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/next/topic \
HEAD:refs/for/a/b/c/topic \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/a/b/c/topic
remote: proc-receive> ok refs/for/next/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/124/head
remote: proc-receive> option old-oid <COMMIT-B>
remote: proc-receive> option forced-update
@ -250,7 +250,7 @@ test_expect_success "proc-receive: report with multiple rewrites ($PROTOCOL)" '
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -7,24 +7,24 @@ test_expect_success "setup proc-receive hook (option without matching ok, $PROTO
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option without matching ok ($PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option old-oid <COMMIT-B>
remote: error: proc-receive reported "option" without a matching "ok/ng" directive
To <URL/of/upstream.git>
! HEAD:refs/for/master/topic [remote rejected] (proc-receive failed to report status)
! HEAD:refs/for/main/topic [remote rejected] (proc-receive failed to report status)
Done
EOF
test_cmp expect actual
@ -34,25 +34,25 @@ test_expect_success "setup proc-receive hook (option refname, $PROTOCOL/porcelai
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/123/head"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option refname ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/pull/123/head
@ -67,26 +67,26 @@ test_expect_success "setup proc-receive hook (option refname and forced-update,
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/123/head" \
-r "option forced-update"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option refname and forced-update ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option forced-update
remote: # post-receive hook
@ -102,26 +102,26 @@ test_expect_success "setup proc-receive hook (option refname and old-oid, $PROTO
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/123/head" \
-r "option old-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option refname and old-oid ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option old-oid <COMMIT-B>
remote: # post-receive hook
@ -137,30 +137,30 @@ test_expect_success "setup proc-receive hook (option old-oid, $PROTOCOL/porcelai
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option old-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option old-oid ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-B>
remote: # post-receive hook
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/for/master/topic
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/for/main/topic
To <URL/of/upstream.git>
HEAD:refs/for/master/topic <OID-B>..<OID-A>
HEAD:refs/for/main/topic <OID-B>..<OID-A>
Done
EOF
test_cmp expect actual
@ -170,32 +170,32 @@ test_expect_success "setup proc-receive hook (option old-oid and new-oid, $PROTO
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option old-oid $A" \
-r "option new-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report option old-oid and new-oid ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/master/topic
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/main/topic
To <URL/of/upstream.git>
HEAD:refs/for/master/topic <OID-A>..<OID-B>
HEAD:refs/for/main/topic <OID-A>..<OID-B>
Done
EOF
test_cmp expect actual
@ -208,7 +208,7 @@ test_expect_success "setup proc-receive hook (report with multiple rewrites, $PR
-r "ok refs/for/a/b/c/topic" \
-r "ok refs/for/next/topic" \
-r "option refname refs/pull/123/head" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/124/head" \
-r "option old-oid $B" \
-r "option forced-update" \
@ -217,29 +217,29 @@ test_expect_success "setup proc-receive hook (report with multiple rewrites, $PR
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/next/topic(A) refs/for/a/b/c/topic(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report with multiple rewrites ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/next/topic \
HEAD:refs/for/a/b/c/topic \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/a/b/c/topic
remote: proc-receive> ok refs/for/next/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/124/head
remote: proc-receive> option old-oid <COMMIT-B>
remote: proc-receive> option forced-update
@ -259,7 +259,7 @@ test_expect_success "proc-receive: report with multiple rewrites ($PROTOCOL/porc
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -2,43 +2,43 @@ test_expect_success "setup proc-receive hook (ft, $PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option fall-through"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(B)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(B)
test_expect_success "proc-receive: fall throught, let receive-pack to execute ($PROTOCOL)" '
git -C workbench push origin \
$B:refs/for/master/topic \
$B:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-B> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-B> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-B> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-B> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option fall-through
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-B> refs/for/master/topic
remote: post-receive< <ZERO-OID> <COMMIT-B> refs/for/main/topic
To <URL/of/upstream.git>
* [new reference] <COMMIT-B> -> refs/for/master/topic
* [new reference] <COMMIT-B> -> refs/for/main/topic
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/for/master/topic
<COMMIT-A> refs/heads/master
<COMMIT-B> refs/for/main/topic
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) refs/for/master/topic(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) refs/for/main/topic(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL)" '
git -C "$upstream" update-ref -d refs/for/master/topic
git -C "$upstream" update-ref -d refs/for/main/topic
'

View file

@ -2,44 +2,44 @@ test_expect_success "setup proc-receive hook (fall-through, $PROTOCOL/porcelain)
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option fall-through"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(B)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(B)
test_expect_success "proc-receive: fall throught, let receive-pack to execute ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
$B:refs/for/master/topic \
$B:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-B> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-B> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-B> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-B> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option fall-through
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-B> refs/for/master/topic
remote: post-receive< <ZERO-OID> <COMMIT-B> refs/for/main/topic
To <URL/of/upstream.git>
* <COMMIT-B>:refs/for/master/topic [new reference]
* <COMMIT-B>:refs/for/main/topic [new reference]
Done
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-B> refs/for/master/topic
<COMMIT-A> refs/heads/master
<COMMIT-B> refs/for/main/topic
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) refs/for/master/topic(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) refs/for/main/topic(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL/porcelain)" '
git -C "$upstream" update-ref -d refs/for/master/topic
git -C "$upstream" update-ref -d refs/for/main/topic
'

View file

@ -17,50 +17,50 @@ test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option old-oid $A" \
-r "option new-oid $B" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/24/124/1" \
-r "option old-oid $ZERO_OID" \
-r "option new-oid $A" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/25/125/1" \
-r "option old-oid $A" \
-r "option new-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: multiple rewrite for one ref, no refname for the 1st rewrite ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/24/124/1
remote: proc-receive> option old-oid <ZERO-OID>
remote: proc-receive> option new-oid <COMMIT-A>
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/25/125/1
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/master/topic
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/main/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/changes/24/124/1
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/changes/25/125/1
To <URL/of/upstream.git>
<OID-A>..<OID-B> HEAD -> refs/for/master/topic
<OID-A>..<OID-B> HEAD -> refs/for/main/topic
* [new reference] HEAD -> refs/changes/24/124/1
<OID-A>..<OID-B> HEAD -> refs/changes/25/125/1
EOF
@ -68,7 +68,7 @@ test_expect_success "proc-receive: multiple rewrite for one ref, no refname for
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -80,10 +80,10 @@ test_expect_success "proc-receive: check remote-tracking #1 ($PROTOCOL)" '
cat >expect <<-EOF &&
<COMMIT-A> refs/t/changes/24/124/1
<COMMIT-B> refs/t/changes/25/125/1
<COMMIT-B> refs/t/for/master/topic
<COMMIT-B> refs/t/for/main/topic
EOF
test_cmp expect actual &&
git -C workbench update-ref -d refs/t/for/master/topic &&
git -C workbench update-ref -d refs/t/for/main/topic &&
git -C workbench update-ref -d refs/t/changes/24/124/1 &&
git -C workbench update-ref -d refs/t/changes/25/125/1
'
@ -92,14 +92,14 @@ test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/24/124/1" \
-r "option old-oid $ZERO_OID" \
-r "option new-oid $A" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option old-oid $A" \
-r "option new-oid $B" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/25/125/1" \
-r "option old-oid $B" \
-r "option new-oid $A" \
@ -107,45 +107,45 @@ test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: multiple rewrites for one ref, no refname for the 2nd rewrite ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/24/124/1
remote: proc-receive> option old-oid <ZERO-OID>
remote: proc-receive> option new-oid <COMMIT-A>
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/25/125/1
remote: proc-receive> option old-oid <COMMIT-B>
remote: proc-receive> option new-oid <COMMIT-A>
remote: proc-receive> option forced-update
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/changes/24/124/1
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/master/topic
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/main/topic
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/changes/25/125/1
To <URL/of/upstream.git>
* [new reference] HEAD -> refs/changes/24/124/1
<OID-A>..<OID-B> HEAD -> refs/for/master/topic
<OID-A>..<OID-B> HEAD -> refs/for/main/topic
+ <OID-B>...<OID-A> HEAD -> refs/changes/25/125/1 (forced update)
EOF
test_cmp expect actual &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -157,10 +157,10 @@ test_expect_success "proc-receive: check remote-tracking #2 ($PROTOCOL)" '
cat >expect <<-EOF &&
<COMMIT-A> refs/t/changes/24/124/1
<COMMIT-A> refs/t/changes/25/125/1
<COMMIT-B> refs/t/for/master/topic
<COMMIT-B> refs/t/for/main/topic
EOF
test_cmp expect actual &&
git -C workbench update-ref -d refs/t/for/master/topic &&
git -C workbench update-ref -d refs/t/for/main/topic &&
git -C workbench update-ref -d refs/t/changes/24/124/1 &&
git -C workbench update-ref -d refs/t/changes/25/125/1
'
@ -169,31 +169,31 @@ test_expect_success "setup proc-receive hook (multiple rewrites for one ref, $PR
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/23/123/1" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/24/124/2" \
-r "option old-oid $A" \
-r "option new-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: multiple rewrites for one ref ($PROTOCOL)" '
git -C workbench push origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/23/123/1
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/24/124/2
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
@ -208,7 +208,7 @@ test_expect_success "proc-receive: multiple rewrites for one ref ($PROTOCOL)" '
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -2,50 +2,50 @@ test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option old-oid $A" \
-r "option new-oid $B" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/24/124/1" \
-r "option old-oid $ZERO_OID" \
-r "option new-oid $A" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/25/125/1" \
-r "option old-oid $A" \
-r "option new-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: multiple rewrite for one ref, no refname for the 1st rewrite ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/24/124/1
remote: proc-receive> option old-oid <ZERO-OID>
remote: proc-receive> option new-oid <COMMIT-A>
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/25/125/1
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/master/topic
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/main/topic
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/changes/24/124/1
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/changes/25/125/1
To <URL/of/upstream.git>
HEAD:refs/for/master/topic <OID-A>..<OID-B>
HEAD:refs/for/main/topic <OID-A>..<OID-B>
* HEAD:refs/changes/24/124/1 [new reference]
HEAD:refs/changes/25/125/1 <OID-A>..<OID-B>
Done
@ -54,7 +54,7 @@ test_expect_success "proc-receive: multiple rewrite for one ref, no refname for
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -63,14 +63,14 @@ test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/24/124/1" \
-r "option old-oid $ZERO_OID" \
-r "option new-oid $A" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option old-oid $A" \
-r "option new-oid $B" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/25/125/1" \
-r "option old-oid $B" \
-r "option new-oid $A" \
@ -78,38 +78,38 @@ test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: multiple rewrites for one ref, no refname for the 2nd rewrite ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/24/124/1
remote: proc-receive> option old-oid <ZERO-OID>
remote: proc-receive> option new-oid <COMMIT-A>
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/25/125/1
remote: proc-receive> option old-oid <COMMIT-B>
remote: proc-receive> option new-oid <COMMIT-A>
remote: proc-receive> option forced-update
remote: # post-receive hook
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/changes/24/124/1
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/master/topic
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/main/topic
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/changes/25/125/1
To <URL/of/upstream.git>
* HEAD:refs/changes/24/124/1 [new reference]
HEAD:refs/for/master/topic <OID-A>..<OID-B>
HEAD:refs/for/main/topic <OID-A>..<OID-B>
+ HEAD:refs/changes/25/125/1 <OID-B>...<OID-A> (forced update)
Done
EOF
@ -117,7 +117,7 @@ test_expect_success "proc-receive: multiple rewrites for one ref, no refname for
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
@ -126,31 +126,31 @@ test_expect_success "setup proc-receive hook (multiple rewrites for one ref, $PR
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/23/123/1" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/changes/24/124/2" \
-r "option old-oid $A" \
-r "option new-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : refs/for/main/topic(A)
test_expect_success "proc-receive: multiple rewrites for one ref ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain origin \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/23/123/1
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/changes/24/124/2
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
@ -166,7 +166,7 @@ test_expect_success "proc-receive: multiple rewrites for one ref ($PROTOCOL/porc
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'

View file

@ -4,63 +4,63 @@ test_expect_success "setup proc-receive hook ($PROTOCOL)" '
test-tool proc-receive -v \
-r "ok refs/for/next/topic2" \
-r "ng refs/for/next/topic1 fail to call Web API" \
-r "ok refs/for/master/topic" \
-r "option refname refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/for/main/topic" \
-r "option old-oid $A" \
-r "option new-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : (B) bar(A) baz(A) refs/for/next/topic(A) foo(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : (B) bar(A) baz(A) refs/for/next/topic(A) foo(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL)" '
test_must_fail git -C workbench push origin \
$B:refs/heads/master \
$B:refs/heads/main \
HEAD:refs/heads/bar \
HEAD:refs/heads/baz \
HEAD:refs/for/next/topic2 \
HEAD:refs/for/next/topic1 \
HEAD:refs/heads/foo \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
HEAD:refs/for/next/topic3 \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/bar
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/baz
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic2
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic1
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/foo
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic3
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic2
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic1
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic3
remote: proc-receive> ok refs/for/next/topic2
remote: proc-receive> ng refs/for/next/topic1 fail to call Web API
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> option refname refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/bar
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/baz
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic2
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/foo
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/master/topic
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/main/topic
To <URL/of/upstream.git>
<OID-A>..<OID-B> <COMMIT-B> -> master
<OID-A>..<OID-B> <COMMIT-B> -> main
* [new branch] HEAD -> bar
* [new branch] HEAD -> baz
* [new reference] HEAD -> refs/for/next/topic2
* [new branch] HEAD -> foo
<OID-A>..<OID-B> HEAD -> refs/for/master/topic
<OID-A>..<OID-B> HEAD -> refs/for/main/topic
! [remote rejected] HEAD -> refs/for/next/topic1 (fail to call Web API)
! [remote rejected] HEAD -> refs/for/next/topic3 (proc-receive failed to report status)
EOF
@ -71,17 +71,17 @@ test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL)" '
<COMMIT-A> refs/heads/bar
<COMMIT-A> refs/heads/baz
<COMMIT-A> refs/heads/foo
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
EOF
test_cmp expect actual
'
# Refs of upstream : master(B) foo(A) bar(A)) baz(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(B) foo(A) bar(A)) baz(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL)" '
(
cd "$upstream" &&
git update-ref refs/heads/master $A &&
git update-ref refs/heads/main $A &&
git update-ref -d refs/heads/foo &&
git update-ref -d refs/heads/bar &&
git update-ref -d refs/heads/baz

View file

@ -4,63 +4,63 @@ test_expect_success "setup proc-receive hook ($PROTOCOL/porcelain)" '
test-tool proc-receive -v \
-r "ok refs/for/next/topic2" \
-r "ng refs/for/next/topic1 fail to call Web API" \
-r "ok refs/for/master/topic" \
-r "option refname refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/for/main/topic" \
-r "option old-oid $A" \
-r "option new-oid $B"
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : (B) bar(A) baz(A) refs/for/next/topic(A) foo(A) refs/for/master/topic(A)
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : (B) bar(A) baz(A) refs/for/next/topic(A) foo(A) refs/for/main/topic(A)
test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL/porcelain)" '
test_must_fail git -C workbench push --porcelain origin \
$B:refs/heads/master \
$B:refs/heads/main \
HEAD:refs/heads/bar \
HEAD:refs/heads/baz \
HEAD:refs/for/next/topic2 \
HEAD:refs/for/next/topic1 \
HEAD:refs/heads/foo \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
HEAD:refs/for/next/topic3 \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/bar
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/baz
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic2
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic1
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/foo
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic3
remote: # proc-receive hook
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic2
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic1
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic3
remote: proc-receive> ok refs/for/next/topic2
remote: proc-receive> ng refs/for/next/topic1 fail to call Web API
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> option refname refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/for/main/topic
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/bar
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/baz
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic2
remote: post-receive< <ZERO-OID> <COMMIT-A> refs/heads/foo
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/master/topic
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/for/main/topic
To <URL/of/upstream.git>
<COMMIT-B>:refs/heads/master <OID-A>..<OID-B>
<COMMIT-B>:refs/heads/main <OID-A>..<OID-B>
* HEAD:refs/heads/bar [new branch]
* HEAD:refs/heads/baz [new branch]
* HEAD:refs/for/next/topic2 [new reference]
* HEAD:refs/heads/foo [new branch]
HEAD:refs/for/master/topic <OID-A>..<OID-B>
HEAD:refs/for/main/topic <OID-A>..<OID-B>
! HEAD:refs/for/next/topic1 [remote rejected] (fail to call Web API)
! HEAD:refs/for/next/topic3 [remote rejected] (proc-receive failed to report status)
Done
@ -72,17 +72,17 @@ test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL/porcel
<COMMIT-A> refs/heads/bar
<COMMIT-A> refs/heads/baz
<COMMIT-A> refs/heads/foo
<COMMIT-B> refs/heads/master
<COMMIT-B> refs/heads/main
EOF
test_cmp expect actual
'
# Refs of upstream : master(B) foo(A) bar(A)) baz(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(B) foo(A) bar(A)) baz(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL/porcelain)" '
(
cd "$upstream" &&
git update-ref refs/heads/master $A &&
git update-ref refs/heads/main $A &&
git update-ref -d refs/heads/foo &&
git update-ref -d refs/heads/bar &&
git update-ref -d refs/heads/baz

View file

@ -3,12 +3,12 @@ test_expect_success "config receive.procReceiveRefs = refs ($PROTOCOL)" '
git -C "$upstream" config --add receive.procReceiveRefs refs
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "setup upstream branches ($PROTOCOL)" '
(
cd "$upstream" &&
git update-ref refs/heads/master $B &&
git update-ref refs/heads/main $B &&
git update-ref refs/heads/foo $A &&
git update-ref refs/heads/bar $A &&
git update-ref refs/heads/baz $A
@ -20,13 +20,13 @@ test_expect_success "setup proc-receive hook ($PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/master" \
-r "ok refs/heads/main" \
-r "option fall-through" \
-r "ok refs/heads/foo" \
-r "option fall-through" \
-r "ok refs/heads/bar" \
-r "option fall-through" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/123/head" \
-r "option old-oid $A" \
-r "option new-oid $B" \
@ -38,15 +38,15 @@ test_expect_success "setup proc-receive hook ($PROTOCOL)" '
EOF
'
# Refs of upstream : master(B) foo(A) bar(A)) baz(A)
# Refs of workbench: master(A) tags/v123
# git push -f : master(A) (NULL) (B) refs/for/master/topic(A) refs/for/next/topic(A)
# Refs of upstream : main(B) foo(A) bar(A)) baz(A)
# Refs of workbench: main(A) tags/v123
# git push -f : main(A) (NULL) (B) refs/for/main/topic(A) refs/for/next/topic(A)
test_expect_success "proc-receive: process all refs ($PROTOCOL)" '
git -C workbench push -f origin \
HEAD:refs/heads/master \
HEAD:refs/heads/main \
:refs/heads/foo \
$B:refs/heads/bar \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
HEAD:refs/for/next/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
@ -54,22 +54,22 @@ test_expect_success "proc-receive: process all refs ($PROTOCOL)" '
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/bar
remote: pre-receive< <COMMIT-A> <ZERO-OID> refs/heads/foo
remote: pre-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
remote: # proc-receive hook
remote: proc-receive< <COMMIT-A> <COMMIT-B> refs/heads/bar
remote: proc-receive< <COMMIT-A> <ZERO-OID> refs/heads/foo
remote: proc-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
remote: proc-receive> ok refs/heads/master
remote: proc-receive> ok refs/heads/main
remote: proc-receive> option fall-through
remote: proc-receive> ok refs/heads/foo
remote: proc-receive> option fall-through
remote: proc-receive> ok refs/heads/bar
remote: proc-receive> option fall-through
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
@ -81,13 +81,13 @@ test_expect_success "proc-receive: process all refs ($PROTOCOL)" '
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/bar
remote: post-receive< <COMMIT-A> <ZERO-OID> refs/heads/foo
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/pull/123/head
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/pull/124/head
To <URL/of/upstream.git>
<OID-A>..<OID-B> <COMMIT-B> -> bar
- [deleted] foo
+ <OID-B>...<OID-A> HEAD -> master (forced update)
+ <OID-B>...<OID-A> HEAD -> main (forced update)
<OID-A>..<OID-B> HEAD -> refs/pull/123/head
+ <OID-B>...<OID-A> HEAD -> refs/pull/124/head (forced update)
EOF
@ -97,13 +97,13 @@ test_expect_success "proc-receive: process all refs ($PROTOCOL)" '
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/bar
<COMMIT-A> refs/heads/baz
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) bar(A) baz(B)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) bar(A) baz(B)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL)" '
(
cd "$upstream" &&

View file

@ -3,12 +3,12 @@ test_expect_success "config receive.procReceiveRefs = refs ($PROTOCOL/porcelain)
git -C "$upstream" config --add receive.procReceiveRefs refs
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "setup upstream branches ($PROTOCOL/porcelain)" '
(
cd "$upstream" &&
git update-ref refs/heads/master $B &&
git update-ref refs/heads/main $B &&
git update-ref refs/heads/foo $A &&
git update-ref refs/heads/bar $A &&
git update-ref refs/heads/baz $A
@ -20,13 +20,13 @@ test_expect_success "setup proc-receive hook ($PROTOCOL/porcelain)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/master" \
-r "ok refs/heads/main" \
-r "option fall-through" \
-r "ok refs/heads/foo" \
-r "option fall-through" \
-r "ok refs/heads/bar" \
-r "option fall-through" \
-r "ok refs/for/master/topic" \
-r "ok refs/for/main/topic" \
-r "option refname refs/pull/123/head" \
-r "option old-oid $A" \
-r "option new-oid $B" \
@ -38,15 +38,15 @@ test_expect_success "setup proc-receive hook ($PROTOCOL/porcelain)" '
EOF
'
# Refs of upstream : master(B) foo(A) bar(A)) baz(A)
# Refs of workbench: master(A) tags/v123
# git push -f : master(A) (NULL) (B) refs/for/master/topic(A) refs/for/next/topic(A)
# Refs of upstream : main(B) foo(A) bar(A)) baz(A)
# Refs of workbench: main(A) tags/v123
# git push -f : main(A) (NULL) (B) refs/for/main/topic(A) refs/for/next/topic(A)
test_expect_success "proc-receive: process all refs ($PROTOCOL/porcelain)" '
git -C workbench push --porcelain -f origin \
HEAD:refs/heads/master \
HEAD:refs/heads/main \
:refs/heads/foo \
$B:refs/heads/bar \
HEAD:refs/for/master/topic \
HEAD:refs/for/main/topic \
HEAD:refs/for/next/topic \
>out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
@ -54,22 +54,22 @@ test_expect_success "proc-receive: process all refs ($PROTOCOL/porcelain)" '
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/bar
remote: pre-receive< <COMMIT-A> <ZERO-OID> refs/heads/foo
remote: pre-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: pre-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
remote: # proc-receive hook
remote: proc-receive< <COMMIT-A> <COMMIT-B> refs/heads/bar
remote: proc-receive< <COMMIT-A> <ZERO-OID> refs/heads/foo
remote: proc-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/master/topic
remote: proc-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/next/topic
remote: proc-receive> ok refs/heads/master
remote: proc-receive> ok refs/heads/main
remote: proc-receive> option fall-through
remote: proc-receive> ok refs/heads/foo
remote: proc-receive> option fall-through
remote: proc-receive> ok refs/heads/bar
remote: proc-receive> option fall-through
remote: proc-receive> ok refs/for/master/topic
remote: proc-receive> ok refs/for/main/topic
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
@ -81,13 +81,13 @@ test_expect_success "proc-receive: process all refs ($PROTOCOL/porcelain)" '
remote: # post-receive hook
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/bar
remote: post-receive< <COMMIT-A> <ZERO-OID> refs/heads/foo
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/heads/master
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/heads/main
remote: post-receive< <COMMIT-A> <COMMIT-B> refs/pull/123/head
remote: post-receive< <COMMIT-B> <COMMIT-A> refs/pull/124/head
To <URL/of/upstream.git>
<COMMIT-B>:refs/heads/bar <OID-A>..<OID-B>
- :refs/heads/foo [deleted]
+ HEAD:refs/heads/master <OID-B>...<OID-A> (forced update)
+ HEAD:refs/heads/main <OID-B>...<OID-A> (forced update)
HEAD:refs/pull/123/head <OID-A>..<OID-B>
+ HEAD:refs/pull/124/head <OID-B>...<OID-A> (forced update)
Done
@ -98,13 +98,13 @@ test_expect_success "proc-receive: process all refs ($PROTOCOL/porcelain)" '
cat >expect <<-EOF &&
<COMMIT-B> refs/heads/bar
<COMMIT-A> refs/heads/baz
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
# Refs of upstream : master(A) bar(A) baz(B)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) bar(A) baz(B)
# Refs of workbench: main(A) tags/v123
test_expect_success "cleanup ($PROTOCOL/porcelain)" '
(
cd "$upstream" &&

View file

@ -2,7 +2,7 @@ test_expect_success "config receive.procReceiveRefs with modifiers ($PROTOCOL)"
(
cd "$upstream" &&
git config --unset-all receive.procReceiveRefs &&
git config --add receive.procReceiveRefs m:refs/heads/master &&
git config --add receive.procReceiveRefs m:refs/heads/main &&
git config --add receive.procReceiveRefs ad:refs/heads &&
git config --add receive.procReceiveRefs "a!:refs/heads"
)
@ -12,7 +12,7 @@ test_expect_success "setup proc-receive hook ($PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/master" \
-r "ok refs/heads/main" \
-r "option refname refs/pull/123/head" \
-r "option old-oid $A" \
-r "option new-oid $B" \
@ -21,22 +21,22 @@ test_expect_success "setup proc-receive hook ($PROTOCOL)" '
EOF
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# git push : master(B) tags/v123
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
# git push : main(B) tags/v123
test_expect_success "proc-receive: update branch and new tag ($PROTOCOL)" '
git -C workbench push origin \
$B:refs/heads/master \
$B:refs/heads/main \
v123 >out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: pre-receive< <ZERO-OID> <TAG-v123> refs/tags/v123
remote: # proc-receive hook
remote: proc-receive< <COMMIT-A> <COMMIT-B> refs/heads/master
remote: proc-receive< <COMMIT-A> <COMMIT-B> refs/heads/main
remote: proc-receive< <ZERO-OID> <TAG-v123> refs/tags/v123
remote: proc-receive> ok refs/heads/master
remote: proc-receive> ok refs/heads/main
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <COMMIT-B>
@ -53,20 +53,20 @@ test_expect_success "proc-receive: update branch and new tag ($PROTOCOL)" '
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
EOF
test_cmp expect actual
'
# Refs of upstream : master(A)
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A)
# Refs of workbench: main(A) tags/v123
test_expect_success "setup upstream: create tags/v123 ($PROTOCOL)" '
git -C "$upstream" update-ref refs/heads/topic $A &&
git -C "$upstream" update-ref refs/tags/v123 $TAG &&
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
<COMMIT-A> refs/heads/topic
<TAG-v123> refs/tags/v123
EOF
@ -77,7 +77,7 @@ test_expect_success "setup proc-receive hook ($PROTOCOL)" '
write_script "$upstream/hooks/proc-receive" <<-EOF
printf >&2 "# proc-receive hook\n"
test-tool proc-receive -v \
-r "ok refs/heads/master" \
-r "ok refs/heads/main" \
-r "option refname refs/pull/123/head" \
-r "option old-oid $A" \
-r "option new-oid $ZERO_OID" \
@ -87,26 +87,26 @@ test_expect_success "setup proc-receive hook ($PROTOCOL)" '
EOF
'
# Refs of upstream : master(A) topic(A) tags/v123
# Refs of workbench: master(A) tags/v123
# Refs of upstream : main(A) topic(A) tags/v123
# Refs of workbench: main(A) tags/v123
# git push : NULL topic(B) NULL next(A)
test_expect_success "proc-receive: create/delete branch, and delete tag ($PROTOCOL)" '
git -C workbench push origin \
:refs/heads/master \
:refs/heads/main \
$B:refs/heads/topic \
$A:refs/heads/next \
:refs/tags/v123 >out 2>&1 &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
remote: # pre-receive hook
remote: pre-receive< <COMMIT-A> <ZERO-OID> refs/heads/master
remote: pre-receive< <COMMIT-A> <ZERO-OID> refs/heads/main
remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/topic
remote: pre-receive< <TAG-v123> <ZERO-OID> refs/tags/v123
remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: # proc-receive hook
remote: proc-receive< <COMMIT-A> <ZERO-OID> refs/heads/master
remote: proc-receive< <COMMIT-A> <ZERO-OID> refs/heads/main
remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/heads/next
remote: proc-receive> ok refs/heads/master
remote: proc-receive> ok refs/heads/main
remote: proc-receive> option refname refs/pull/123/head
remote: proc-receive> option old-oid <COMMIT-A>
remote: proc-receive> option new-oid <ZERO-OID>
@ -128,7 +128,7 @@ test_expect_success "proc-receive: create/delete branch, and delete tag ($PROTOC
git -C "$upstream" show-ref >out &&
make_user_friendly_and_stable_output <out >actual &&
cat >expect <<-EOF &&
<COMMIT-A> refs/heads/master
<COMMIT-A> refs/heads/main
<COMMIT-B> refs/heads/topic
EOF
test_cmp expect actual