Merge branch 'jx/t5411-unique-filenames'
Avoid individual tests in t5411 from getting affected by each other by forcing them to use separate output files during the test. * jx/t5411-unique-filenames: t5411: refactor check of refs using test_cmp_refs t5411: use different out file to prevent overwriting
This commit is contained in:
		| @ -58,3 +58,18 @@ filter_out_user_friendly_and_stable_output () { | |||||||
| 	make_user_friendly_and_stable_output | | 	make_user_friendly_and_stable_output | | ||||||
| 		sed -n ${1+"$@"} | 		sed -n ${1+"$@"} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | test_cmp_refs () { | ||||||
|  | 	indir= | ||||||
|  | 	if test "$1" = "-C" | ||||||
|  | 	then | ||||||
|  | 		shift | ||||||
|  | 		indir="$1" | ||||||
|  | 		shift | ||||||
|  | 	fi | ||||||
|  | 	indir=${indir:+"$indir"/} | ||||||
|  | 	cat >show-ref.expect && | ||||||
|  | 	git ${indir:+ -C "$indir"} show-ref >show-ref.pristine && | ||||||
|  | 	make_user_friendly_and_stable_output <show-ref.pristine >show-ref.filtered && | ||||||
|  | 	test_cmp show-ref.expect show-ref.filtered | ||||||
|  | } | ||||||
|  | |||||||
| @ -83,12 +83,9 @@ test_expect_success "proc-receive: report status v1" ' | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/for/main/topic1 | 	<COMMIT-A> refs/for/main/topic1 | ||||||
| 	<COMMIT-A> refs/heads/foo | 	<COMMIT-A> refs/heads/foo | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -19,13 +19,11 @@ test_expect_success "git-push ($PROTOCOL)" ' | |||||||
| 	 * [new branch] HEAD -> next | 	 * [new branch] HEAD -> next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B)  next(A) | # Refs of upstream : main(B)  next(A) | ||||||
| @ -35,24 +33,22 @@ test_expect_success "git-push --atomic ($PROTOCOL)" ' | |||||||
| 	test_must_fail git -C workbench push --atomic origin \ | 	test_must_fail git -C workbench push --atomic origin \ | ||||||
| 		main \ | 		main \ | ||||||
| 		$B:refs/heads/next \ | 		$B:refs/heads/next \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; }" \ | 		-e "/^To / { p; }" \ | ||||||
| 		-e "/^ ! / { p; }" \ | 		-e "/^ ! / { p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	 ! [rejected] main -> main (non-fast-forward) | 	 ! [rejected] main -> main (non-fast-forward) | ||||||
| 	 ! [rejected] <COMMIT-B> -> next (atomic push failed) | 	 ! [rejected] <COMMIT-B> -> next (atomic push failed) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B)  next(A) | # Refs of upstream : main(B)  next(A) | ||||||
| @ -65,8 +61,8 @@ test_expect_success "non-fast-forward git-push ($PROTOCOL)" ' | |||||||
| 		push origin \ | 		push origin \ | ||||||
| 		main \ | 		main \ | ||||||
| 		$B:refs/heads/next \ | 		$B:refs/heads/next \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/next | 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/next | ||||||
| @ -77,13 +73,11 @@ test_expect_success "non-fast-forward git-push ($PROTOCOL)" ' | |||||||
| 	 ! [rejected] main -> main (non-fast-forward) | 	 ! [rejected] main -> main (non-fast-forward) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	<COMMIT-B> refs/heads/next | 	<COMMIT-B> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B)  next(B) | # Refs of upstream : main(B)  next(B) | ||||||
| @ -119,15 +113,13 @@ test_expect_success "git-push -f ($PROTOCOL)" ' | |||||||
| 	 * [new branch] HEAD -> a/b/c | 	 * [new branch] HEAD -> a/b/c | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/a/b/c | 	<COMMIT-A> refs/heads/a/b/c | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/review/main/topic | 	<COMMIT-A> refs/review/main/topic | ||||||
| 	<TAG-v123> refs/tags/v123 | 	<TAG-v123> refs/tags/v123 | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)  tags/v123  refs/review/main/topic(A)  a/b/c(A) | # Refs of upstream : main(A)  tags/v123  refs/review/main/topic(A)  a/b/c(A) | ||||||
|  | |||||||
| @ -20,13 +20,11 @@ test_expect_success "git-push ($PROTOCOL/porcelain)" ' | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B)  next(A) | # Refs of upstream : main(B)  next(A) | ||||||
| @ -36,25 +34,23 @@ test_expect_success "git-push --atomic ($PROTOCOL/porcelain)" ' | |||||||
| 	test_must_fail git -C workbench push --atomic --porcelain origin \ | 	test_must_fail git -C workbench push --atomic --porcelain origin \ | ||||||
| 		main \ | 		main \ | ||||||
| 		$B:refs/heads/next \ | 		$B:refs/heads/next \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "s/^# GETTEXT POISON #//" \ | 		-e "s/^# GETTEXT POISON #//" \ | ||||||
| 		-e "/^To / { p; }" \ | 		-e "/^To / { p; }" \ | ||||||
| 		-e "/^! / { p; }" \ | 		-e "/^! / { p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	!    refs/heads/main:refs/heads/main    [rejected] (non-fast-forward) | 	!    refs/heads/main:refs/heads/main    [rejected] (non-fast-forward) | ||||||
| 	!    <COMMIT-B>:refs/heads/next    [rejected] (atomic push failed) | 	!    <COMMIT-B>:refs/heads/next    [rejected] (atomic push failed) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B)  next(A) | # Refs of upstream : main(B)  next(A) | ||||||
| @ -67,8 +63,8 @@ test_expect_success "non-fast-forward git-push ($PROTOCOL/porcelain)" ' | |||||||
| 		push --porcelain origin \ | 		push --porcelain origin \ | ||||||
| 		main \ | 		main \ | ||||||
| 		$B:refs/heads/next \ | 		$B:refs/heads/next \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/next | 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/next | ||||||
| @ -80,13 +76,11 @@ test_expect_success "non-fast-forward git-push ($PROTOCOL/porcelain)" ' | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	<COMMIT-B> refs/heads/next | 	<COMMIT-B> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B)  next(B) | # Refs of upstream : main(B)  next(B) | ||||||
| @ -123,15 +117,13 @@ test_expect_success "git-push -f ($PROTOCOL/porcelain)" ' | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/a/b/c | 	<COMMIT-A> refs/heads/a/b/c | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/review/main/topic | 	<COMMIT-A> refs/review/main/topic | ||||||
| 	<TAG-v123> refs/tags/v123 | 	<TAG-v123> refs/tags/v123 | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)  tags/v123  refs/review/main/topic(A)  a/b/c(A) | # Refs of upstream : main(A)  tags/v123  refs/review/main/topic(A)  a/b/c(A) | ||||||
|  | |||||||
| @ -12,20 +12,18 @@ test_expect_success "git-push is declined ($PROTOCOL)" ' | |||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		$B:refs/heads/main \ | 		$B:refs/heads/main \ | ||||||
| 		HEAD:refs/heads/next \ | 		HEAD:refs/heads/next \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	 ! [remote rejected] <COMMIT-B> -> main (pre-receive hook declined) | 	 ! [remote rejected] <COMMIT-B> -> main (pre-receive hook declined) | ||||||
| 	 ! [remote rejected] HEAD -> next (pre-receive hook declined) | 	 ! [remote rejected] HEAD -> next (pre-receive hook declined) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "cleanup ($PROTOCOL)" ' | test_expect_success "cleanup ($PROTOCOL)" ' | ||||||
|  | |||||||
| @ -12,8 +12,8 @@ test_expect_success "git-push is declined ($PROTOCOL/porcelain)" ' | |||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		$B:refs/heads/main \ | 		$B:refs/heads/main \ | ||||||
| 		HEAD:refs/heads/next \ | 		HEAD:refs/heads/next \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	!    <COMMIT-B>:refs/heads/main    [remote rejected] (pre-receive hook declined) | 	!    <COMMIT-B>:refs/heads/main    [remote rejected] (pre-receive hook declined) | ||||||
| @ -21,12 +21,10 @@ test_expect_success "git-push is declined ($PROTOCOL/porcelain)" ' | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "cleanup ($PROTOCOL/porcelain)" ' | test_expect_success "cleanup ($PROTOCOL/porcelain)" ' | ||||||
|  | |||||||
| @ -5,8 +5,8 @@ test_expect_success "proc-receive: no hook, fail to push special ref ($PROTOCOL) | |||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:next \ | 		HEAD:next \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next | ||||||
| @ -19,13 +19,11 @@ test_expect_success "proc-receive: no hook, fail to push special ref ($PROTOCOL) | |||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             next(A) | # Refs of upstream : main(A)             next(A) | ||||||
| @ -41,8 +39,8 @@ test_expect_success "proc-receive: no hook, all failed for atomic push ($PROTOCO | |||||||
| 	test_must_fail git -C workbench push --atomic origin \ | 	test_must_fail git -C workbench push --atomic origin \ | ||||||
| 		$B:main \ | 		$B:main \ | ||||||
| 		HEAD:next \ | 		HEAD:next \ | ||||||
| 		HEAD:refs/for/main/topic >out 2>&1 && | 		HEAD:refs/for/main/topic >out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | ||||||
| @ -55,10 +53,8 @@ test_expect_success "proc-receive: no hook, all failed for atomic push ($PROTOCO | |||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -5,8 +5,8 @@ test_expect_success "proc-receive: no hook, fail to push special ref ($PROTOCOL/ | |||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:next \ | 		HEAD:next \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next | ||||||
| @ -20,13 +20,11 @@ test_expect_success "proc-receive: no hook, fail to push special ref ($PROTOCOL/ | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             next(A) | # Refs of upstream : main(A)             next(A) | ||||||
| @ -42,8 +40,8 @@ test_expect_success "proc-receive: no hook, all failed for atomic push ($PROTOCO | |||||||
| 	test_must_fail git -C workbench push --porcelain --atomic origin \ | 	test_must_fail git -C workbench push --porcelain --atomic origin \ | ||||||
| 		$B:main \ | 		$B:main \ | ||||||
| 		HEAD:next \ | 		HEAD:next \ | ||||||
| 		HEAD:refs/for/main/topic >out 2>&1 && | 		HEAD:refs/for/main/topic >out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | ||||||
| @ -57,10 +55,8 @@ test_expect_success "proc-receive: no hook, all failed for atomic push ($PROTOCO | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -11,8 +11,8 @@ test_expect_success "setup proc-receive hook (unknown version, $PROTOCOL)" ' | |||||||
| test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL)" ' | test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
|  |  | ||||||
| 	# Check status report for git-push | 	# Check status report for git-push | ||||||
| 	sed -n \ | 	sed -n \ | ||||||
| @ -34,12 +34,9 @@ test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL)" ' | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual-error && | 	test_cmp expect actual-error && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL)" ' | test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL)" ' | ||||||
| @ -55,25 +52,22 @@ test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL | |||||||
| test_expect_success "proc-receive: bad protocol (hook --die-read-version, $PROTOCOL)" ' | test_expect_success "proc-receive: bad protocol (hook --die-read-version, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; }" \ | 		-e "/^To / { p; }" \ | ||||||
| 		-e "/^ ! / { p; }" \ | 		-e "/^ ! / { p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-read-version option" out && | 	grep "remote: fatal: die with the --die-read-version option" out-$test_count && | ||||||
| 	grep "remote: error: fail to negotiate version with proc-receive hook" out && | 	grep "remote: error: fail to negotiate version with proc-receive hook" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCOL)" ' | test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCOL)" ' | ||||||
| @ -89,25 +83,22 @@ test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCO | |||||||
| test_expect_success "proc-receive: bad protocol (hook --die-write-version, $PROTOCOL)" ' | test_expect_success "proc-receive: bad protocol (hook --die-write-version, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; }" \ | 		-e "/^To / { p; }" \ | ||||||
| 		-e "/^ ! / { p; }" \ | 		-e "/^ ! / { p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-write-version option" out && | 	grep "remote: fatal: die with the --die-write-version option" out-$test_count && | ||||||
| 	grep "remote: error: fail to negotiate version with proc-receive hook" out && | 	grep "remote: error: fail to negotiate version with proc-receive hook" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCOL)" ' | test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCOL)" ' | ||||||
| @ -123,24 +114,21 @@ test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCO | |||||||
| test_expect_success "proc-receive: bad protocol (hook --die-read-commands, $PROTOCOL)" ' | test_expect_success "proc-receive: bad protocol (hook --die-read-commands, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; }" \ | 		-e "/^To / { p; }" \ | ||||||
| 		-e "/^ ! / { p; }" \ | 		-e "/^ ! / { p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-read-commands option" out && | 	grep "remote: fatal: die with the --die-read-commands option" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-read-push-options, $PROTOCOL)" ' | test_expect_success "setup proc-receive hook (hook --die-read-push-options, $PROTOCOL)" ' | ||||||
| @ -158,24 +146,21 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-push-options, $ | |||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		-o reviewers=user1,user2 \ | 		-o reviewers=user1,user2 \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; }" \ | 		-e "/^To / { p; }" \ | ||||||
| 		-e "/^ ! / { p; }" \ | 		-e "/^ ! / { p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-read-push-options option" out && | 	grep "remote: fatal: die with the --die-read-push-options option" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL)" ' | test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL)" ' | ||||||
| @ -191,24 +176,21 @@ test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL | |||||||
| test_expect_success "proc-receive: bad protocol (hook --die-write-report, $PROTOCOL)" ' | test_expect_success "proc-receive: bad protocol (hook --die-write-report, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; }" \ | 		-e "/^To / { p; }" \ | ||||||
| 		-e "/^ ! / { p; }" \ | 		-e "/^ ! / { p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (fail to run proc-receive hook) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-write-report option" out && | 	grep "remote: fatal: die with the --die-write-report option" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (no report, $PROTOCOL)" ' | test_expect_success "setup proc-receive hook (no report, $PROTOCOL)" ' | ||||||
| @ -224,8 +206,8 @@ test_expect_success "setup proc-receive hook (no report, $PROTOCOL)" ' | |||||||
| test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL)" ' | test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/heads/next \ | 		HEAD:refs/heads/next \ | ||||||
| 		HEAD:refs/for/main/topic >out 2>&1 && | 		HEAD:refs/for/main/topic >out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next | ||||||
| @ -240,13 +222,10 @@ test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL)" ' | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             next(A) | # Refs of upstream : main(A)             next(A) | ||||||
| @ -270,8 +249,8 @@ test_expect_success "setup proc-receive hook (no ref, $PROTOCOL)" ' | |||||||
| test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL)" ' | test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/main/topic\ | 		HEAD:refs/for/main/topic\ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -284,12 +263,9 @@ test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL)" ' | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL)" ' | test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL)" ' | ||||||
| @ -306,8 +282,8 @@ test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL)" ' | |||||||
| test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL)" ' | test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 			HEAD:refs/for/main/topic \ | 			HEAD:refs/for/main/topic \ | ||||||
| 			>out 2>&1 && | 			>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -320,10 +296,7 @@ test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL)" ' | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -11,8 +11,8 @@ test_expect_success "setup proc-receive hook (unknown version, $PROTOCOL/porcela | |||||||
| test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
|  |  | ||||||
| 	# Check status report for git-push | 	# Check status report for git-push | ||||||
| 	sed -n \ | 	sed -n \ | ||||||
| @ -34,12 +34,9 @@ test_expect_success "proc-receive: bad protocol (unknown version, $PROTOCOL/porc | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual-error && | 	test_cmp expect actual-error && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL/porcelain)" ' | ||||||
| @ -55,25 +52,22 @@ test_expect_success "setup proc-receive hook (hook --die-read-version, $PROTOCOL | |||||||
| test_expect_success "proc-receive: bad protocol (hook --die-read-version, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: bad protocol (hook --die-read-version, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; n; p; n; p; }" \ | 		-e "/^To / { p; n; p; n; p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | ||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-read-version option" out && | 	grep "remote: fatal: die with the --die-read-version option" out-$test_count && | ||||||
| 	grep "remote: error: fail to negotiate version with proc-receive hook" out && | 	grep "remote: error: fail to negotiate version with proc-receive hook" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCOL/porcelain)" ' | ||||||
| @ -89,25 +83,22 @@ test_expect_success "setup proc-receive hook (hook --die-write-version, $PROTOCO | |||||||
| test_expect_success "proc-receive: bad protocol (hook --die-write-version, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: bad protocol (hook --die-write-version, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; n; p; n; p; }" \ | 		-e "/^To / { p; n; p; n; p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | ||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-write-version option" out && | 	grep "remote: fatal: die with the --die-write-version option" out-$test_count && | ||||||
| 	grep "remote: error: fail to negotiate version with proc-receive hook" out && | 	grep "remote: error: fail to negotiate version with proc-receive hook" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCOL/porcelain)" ' | ||||||
| @ -123,24 +114,21 @@ test_expect_success "setup proc-receive hook (hook --die-read-commands, $PROTOCO | |||||||
| test_expect_success "proc-receive: bad protocol (hook --die-read-commands, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: bad protocol (hook --die-read-commands, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; n; p; n; p; }" \ | 		-e "/^To / { p; n; p; n; p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | ||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-read-commands option" out && | 	grep "remote: fatal: die with the --die-read-commands option" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-read-push-options, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (hook --die-read-push-options, $PROTOCOL/porcelain)" ' | ||||||
| @ -158,24 +146,21 @@ test_expect_success "proc-receive: bad protocol (hook --die-read-push-options, $ | |||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		-o reviewers=user1,user2 \ | 		-o reviewers=user1,user2 \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; n; p; n; p; }" \ | 		-e "/^To / { p; n; p; n; p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | ||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-read-push-options option" out && | 	grep "remote: fatal: die with the --die-read-push-options option" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL/porcelain)" ' | ||||||
| @ -191,24 +176,21 @@ test_expect_success "setup proc-receive hook (hook --die-write-report, $PROTOCOL | |||||||
| test_expect_success "proc-receive: bad protocol (hook --die-write-report, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: bad protocol (hook --die-write-report, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	filter_out_user_friendly_and_stable_output \ | 	filter_out_user_friendly_and_stable_output \ | ||||||
| 		-e "/^To / { p; n; p; n; p; }" \ | 		-e "/^To / { p; n; p; n; p; }" \ | ||||||
| 		<out >actual && | 		<out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	To <URL/of/upstream.git> | 	To <URL/of/upstream.git> | ||||||
| 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | 	!    HEAD:refs/for/main/topic    [remote rejected] (fail to run proc-receive hook) | ||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	grep "remote: fatal: die with the --die-write-report option" out && | 	grep "remote: fatal: die with the --die-write-report option" out-$test_count && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (no report, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (no report, $PROTOCOL/porcelain)" ' | ||||||
| @ -224,8 +206,8 @@ test_expect_success "setup proc-receive hook (no report, $PROTOCOL/porcelain)" ' | |||||||
| test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/heads/next \ | 		HEAD:refs/heads/next \ | ||||||
| 		HEAD:refs/for/main/topic >out 2>&1 && | 		HEAD:refs/for/main/topic >out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/heads/next | ||||||
| @ -241,13 +223,10 @@ test_expect_success "proc-receive: bad protocol (no report, $PROTOCOL/porcelain) | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             next(A) | # Refs of upstream : main(A)             next(A) | ||||||
| @ -270,8 +249,8 @@ test_expect_success "setup proc-receive hook (no ref, $PROTOCOL/porcelain)" ' | |||||||
| test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/main/topic\ | 		HEAD:refs/for/main/topic\ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -285,12 +264,9 @@ test_expect_success "proc-receive: bad protocol (no ref, $PROTOCOL/porcelain)" ' | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL/porcelain)" ' | ||||||
| @ -307,8 +283,8 @@ test_expect_success "setup proc-receive hook (unknown status, $PROTOCOL/porcelai | |||||||
| test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 			HEAD:refs/for/main/topic \ | 			HEAD:refs/for/main/topic \ | ||||||
| 			>out 2>&1 && | 			>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -322,10 +298,7 @@ test_expect_success "proc-receive: bad protocol (unknown status, $PROTOCOL/porce | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -12,8 +12,8 @@ test_expect_success "setup proc-receive hook (ng, no message, $PROTOCOL)" ' | |||||||
| test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL)" ' | test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -24,12 +24,10 @@ test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL)" ' | |||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (failed) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (failed) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (ng message, $PROTOCOL)" ' | test_expect_success "setup proc-receive hook (ng message, $PROTOCOL)" ' | ||||||
| @ -46,8 +44,8 @@ test_expect_success "setup proc-receive hook (ng message, $PROTOCOL)" ' | |||||||
| test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL)" ' | test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -58,10 +56,8 @@ test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL)" | |||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (error msg) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (error msg) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -12,8 +12,8 @@ test_expect_success "setup proc-receive hook (ng, no message, $PROTOCOL/porcelai | |||||||
| test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -25,12 +25,10 @@ test_expect_success "proc-receive: fail to update (ng, no message, $PROTOCOL/por | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (ng message, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (ng message, $PROTOCOL/porcelain)" ' | ||||||
| @ -47,8 +45,8 @@ test_expect_success "setup proc-receive hook (ng message, $PROTOCOL/porcelain)" | |||||||
| test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -60,10 +58,8 @@ test_expect_success "proc-receive: fail to update (ng, with message, $PROTOCOL/p | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -13,8 +13,8 @@ test_expect_success "proc-receive: report unexpected ref ($PROTOCOL)" ' | |||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		$B:refs/heads/main \ | 		$B:refs/heads/main \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | ||||||
| @ -30,12 +30,10 @@ test_expect_success "proc-receive: report unexpected ref ($PROTOCOL)" ' | |||||||
| 	 ! [remote rejected] HEAD -> refs/for/main/topic (proc-receive failed to report status) | 	 ! [remote rejected] HEAD -> refs/for/main/topic (proc-receive failed to report status) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B) | # Refs of upstream : main(B) | ||||||
|  | |||||||
| @ -13,8 +13,8 @@ test_expect_success "proc-receive: report unexpected ref ($PROTOCOL/porcelain)" | |||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		$B:refs/heads/main \ | 		$B:refs/heads/main \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | ||||||
| @ -31,12 +31,10 @@ test_expect_success "proc-receive: report unexpected ref ($PROTOCOL/porcelain)" | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B) | # Refs of upstream : main(B) | ||||||
|  | |||||||
| @ -12,8 +12,8 @@ test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL)" ' | |||||||
| test_expect_success "proc-receive: report unknown reference ($PROTOCOL)" ' | test_expect_success "proc-receive: report unknown reference ($PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/a/b/c/my/topic \ | 		HEAD:refs/for/a/b/c/my/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic | ||||||
| @ -25,10 +25,8 @@ test_expect_success "proc-receive: report unknown reference ($PROTOCOL)" ' | |||||||
| 	 ! [remote rejected] HEAD -> refs/for/a/b/c/my/topic (proc-receive failed to report status) | 	 ! [remote rejected] HEAD -> refs/for/a/b/c/my/topic (proc-receive failed to report status) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -12,8 +12,8 @@ test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL/porcelai | |||||||
| test_expect_success "proc-receive: report unknown reference ($PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: report unknown reference ($PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/a/b/c/my/topic \ | 		HEAD:refs/for/a/b/c/my/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/a/b/c/my/topic | ||||||
| @ -26,10 +26,8 @@ test_expect_success "proc-receive: report unknown reference ($PROTOCOL/porcelain | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -16,16 +16,14 @@ test_expect_success "proc-receive: not support push options ($PROTOCOL)" ' | |||||||
| 		-o reviewer=user1 \ | 		-o reviewer=user1 \ | ||||||
| 		origin \ | 		origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	test_i18ngrep "fatal: the receiving end does not support push options" \ | 	test_i18ngrep "fatal: the receiving end does not support push options" \ | ||||||
| 		actual && | 		actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "enable push options ($PROTOCOL)" ' | test_expect_success "enable push options ($PROTOCOL)" ' | ||||||
| @ -69,13 +67,11 @@ test_expect_success "proc-receive: ignore push-options for version 0 ($PROTOCOL) | |||||||
| 	 * [new reference] HEAD -> refs/for/main/topic | 	 * [new reference] HEAD -> refs/for/main/topic | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "restore proc-receive hook ($PROTOCOL)" ' | test_expect_success "restore proc-receive hook ($PROTOCOL)" ' | ||||||
| @ -123,13 +119,11 @@ test_expect_success "proc-receive: push with options ($PROTOCOL)" ' | |||||||
| 	 * [new reference] HEAD -> refs/for/main/topic | 	 * [new reference] HEAD -> refs/for/main/topic | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             next(A) | # Refs of upstream : main(A)             next(A) | ||||||
|  | |||||||
| @ -17,16 +17,14 @@ test_expect_success "proc-receive: not support push options ($PROTOCOL/porcelain | |||||||
| 		-o reviewer=user1 \ | 		-o reviewer=user1 \ | ||||||
| 		origin \ | 		origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	test_i18ngrep "fatal: the receiving end does not support push options" \ | 	test_i18ngrep "fatal: the receiving end does not support push options" \ | ||||||
| 		actual && | 		actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "enable push options ($PROTOCOL/porcelain)" ' | test_expect_success "enable push options ($PROTOCOL/porcelain)" ' | ||||||
| @ -72,13 +70,11 @@ test_expect_success "proc-receive: ignore push-options for version 0 ($PROTOCOL/ | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "restore proc-receive hook ($PROTOCOL/porcelain)" ' | test_expect_success "restore proc-receive hook ($PROTOCOL/porcelain)" ' | ||||||
| @ -128,13 +124,11 @@ test_expect_success "proc-receive: push with options ($PROTOCOL/porcelain)" ' | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/next | 	<COMMIT-A> refs/heads/next | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             next(A) | # Refs of upstream : main(A)             next(A) | ||||||
|  | |||||||
| @ -26,10 +26,8 @@ test_expect_success "proc-receive: ok ($PROTOCOL)" ' | |||||||
| 	 * [new reference] HEAD -> refs/for/main/topic | 	 * [new reference] HEAD -> refs/for/main/topic | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -27,10 +27,8 @@ test_expect_success "proc-receive: ok ($PROTOCOL/porcelain)" ' | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -13,8 +13,8 @@ test_expect_success "setup proc-receive hook (option without matching ok, $PROTO | |||||||
| test_expect_success "proc-receive: report option without matching ok ($PROTOCOL)" ' | test_expect_success "proc-receive: report option without matching ok ($PROTOCOL)" ' | ||||||
| 	test_must_fail git -C workbench push origin \ | 	test_must_fail git -C workbench push origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -247,10 +247,7 @@ test_expect_success "proc-receive: report with multiple rewrites ($PROTOCOL)" ' | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -13,8 +13,8 @@ test_expect_success "setup proc-receive hook (option without matching ok, $PROTO | |||||||
| test_expect_success "proc-receive: report option without matching ok ($PROTOCOL/porcelain)" ' | test_expect_success "proc-receive: report option without matching ok ($PROTOCOL/porcelain)" ' | ||||||
| 	test_must_fail git -C workbench push --porcelain origin \ | 	test_must_fail git -C workbench push --porcelain origin \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | 	remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | ||||||
| @ -256,10 +256,7 @@ test_expect_success "proc-receive: report with multiple rewrites ($PROTOCOL/porc | |||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
|  |  | ||||||
| 	git -C "$upstream" show-ref >out && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	make_user_friendly_and_stable_output <out >actual && |  | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -28,13 +28,11 @@ test_expect_success "proc-receive: fall throught, let receive-pack to execute ($ | |||||||
| 	 * [new reference] <COMMIT-B> -> refs/for/main/topic | 	 * [new reference] <COMMIT-B> -> refs/for/main/topic | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/for/main/topic | 	<COMMIT-B> refs/for/main/topic | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             refs/for/main/topic(A) | # Refs of upstream : main(A)             refs/for/main/topic(A) | ||||||
|  | |||||||
| @ -29,13 +29,11 @@ test_expect_success "proc-receive: fall throught, let receive-pack to execute ($ | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/for/main/topic | 	<COMMIT-B> refs/for/main/topic | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             refs/for/main/topic(A) | # Refs of upstream : main(A)             refs/for/main/topic(A) | ||||||
|  | |||||||
| @ -65,12 +65,10 @@ test_expect_success "proc-receive: multiple rewrite for one ref, no refname for | |||||||
| 	 <OID-A>..<OID-B> HEAD -> refs/changes/25/125/1 | 	 <OID-A>..<OID-B> HEAD -> refs/changes/25/125/1 | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "proc-receive: check remote-tracking #1 ($PROTOCOL)" ' | test_expect_success "proc-receive: check remote-tracking #1 ($PROTOCOL)" ' | ||||||
| @ -142,12 +140,10 @@ test_expect_success "proc-receive: multiple rewrites for one ref, no refname for | |||||||
| 	 + <OID-B>...<OID-A> HEAD -> refs/changes/25/125/1 (forced update) | 	 + <OID-B>...<OID-A> HEAD -> refs/changes/25/125/1 (forced update) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "proc-receive: check remote-tracking #2 ($PROTOCOL)" ' | test_expect_success "proc-receive: check remote-tracking #2 ($PROTOCOL)" ' | ||||||
| @ -205,12 +201,10 @@ test_expect_success "proc-receive: multiple rewrites for one ref ($PROTOCOL)" ' | |||||||
| 	 <OID-A>..<OID-B> HEAD -> refs/changes/24/124/2 | 	 <OID-A>..<OID-B> HEAD -> refs/changes/24/124/2 | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "proc-receive: check remote-tracking #3 ($PROTOCOL)" ' | test_expect_success "proc-receive: check remote-tracking #3 ($PROTOCOL)" ' | ||||||
|  | |||||||
| @ -51,12 +51,10 @@ test_expect_success "proc-receive: multiple rewrite for one ref, no refname for | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no refname for the 2nd rewrite, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (multiple rewrites for one ref, no refname for the 2nd rewrite, $PROTOCOL/porcelain)" ' | ||||||
| @ -114,12 +112,10 @@ test_expect_success "proc-receive: multiple rewrites for one ref, no refname for | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook (multiple rewrites for one ref, $PROTOCOL/porcelain)" ' | test_expect_success "setup proc-receive hook (multiple rewrites for one ref, $PROTOCOL/porcelain)" ' | ||||||
| @ -163,10 +159,8 @@ test_expect_success "proc-receive: multiple rewrites for one ref ($PROTOCOL/porc | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
| @ -24,8 +24,8 @@ test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL)" ' | |||||||
| 		HEAD:refs/heads/foo \ | 		HEAD:refs/heads/foo \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		HEAD:refs/for/next/topic3 \ | 		HEAD:refs/for/next/topic3 \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | ||||||
| @ -65,15 +65,13 @@ test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL)" ' | |||||||
| 	 ! [remote rejected] HEAD -> refs/for/next/topic3 (proc-receive failed to report status) | 	 ! [remote rejected] HEAD -> refs/for/next/topic3 (proc-receive failed to report status) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/bar | 	<COMMIT-A> refs/heads/bar | ||||||
| 	<COMMIT-A> refs/heads/baz | 	<COMMIT-A> refs/heads/baz | ||||||
| 	<COMMIT-A> refs/heads/foo | 	<COMMIT-A> refs/heads/foo | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B)             foo(A)  bar(A))  baz(A) | # Refs of upstream : main(B)             foo(A)  bar(A))  baz(A) | ||||||
|  | |||||||
| @ -24,8 +24,8 @@ test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL/porcel | |||||||
| 		HEAD:refs/heads/foo \ | 		HEAD:refs/heads/foo \ | ||||||
| 		HEAD:refs/for/main/topic \ | 		HEAD:refs/for/main/topic \ | ||||||
| 		HEAD:refs/for/next/topic3 \ | 		HEAD:refs/for/next/topic3 \ | ||||||
| 		>out 2>&1 && | 		>out-$test_count 2>&1 && | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	make_user_friendly_and_stable_output <out-$test_count >actual && | ||||||
| 	cat >expect <<-EOF && | 	cat >expect <<-EOF && | ||||||
| 	remote: # pre-receive hook | 	remote: # pre-receive hook | ||||||
| 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | 	remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main | ||||||
| @ -66,15 +66,13 @@ test_expect_success "proc-receive: report update of mixed refs ($PROTOCOL/porcel | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/bar | 	<COMMIT-A> refs/heads/bar | ||||||
| 	<COMMIT-A> refs/heads/baz | 	<COMMIT-A> refs/heads/baz | ||||||
| 	<COMMIT-A> refs/heads/foo | 	<COMMIT-A> refs/heads/foo | ||||||
| 	<COMMIT-B> refs/heads/main | 	<COMMIT-B> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(B)             foo(A)  bar(A))  baz(A) | # Refs of upstream : main(B)             foo(A)  bar(A))  baz(A) | ||||||
|  | |||||||
| @ -92,14 +92,12 @@ test_expect_success "proc-receive: process all refs ($PROTOCOL)" ' | |||||||
| 	 + <OID-B>...<OID-A> HEAD -> refs/pull/124/head (forced update) | 	 + <OID-B>...<OID-A> HEAD -> refs/pull/124/head (forced update) | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/bar | 	<COMMIT-B> refs/heads/bar | ||||||
| 	<COMMIT-A> refs/heads/baz | 	<COMMIT-A> refs/heads/baz | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             bar(A)  baz(B) | # Refs of upstream : main(A)             bar(A)  baz(B) | ||||||
|  | |||||||
| @ -93,14 +93,12 @@ test_expect_success "proc-receive: process all refs ($PROTOCOL/porcelain)" ' | |||||||
| 	Done | 	Done | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-B> refs/heads/bar | 	<COMMIT-B> refs/heads/bar | ||||||
| 	<COMMIT-A> refs/heads/baz | 	<COMMIT-A> refs/heads/baz | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A)             bar(A)  baz(B) | # Refs of upstream : main(A)             bar(A)  baz(B) | ||||||
|  | |||||||
| @ -50,12 +50,10 @@ test_expect_success "proc-receive: update branch and new tag ($PROTOCOL)" ' | |||||||
| 	 * [new reference] v123 -> refs/pull/124/head | 	 * [new reference] v123 -> refs/pull/124/head | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| # Refs of upstream : main(A) | # Refs of upstream : main(A) | ||||||
| @ -63,14 +61,12 @@ test_expect_success "proc-receive: update branch and new tag ($PROTOCOL)" ' | |||||||
| test_expect_success "setup upstream: create tags/v123 ($PROTOCOL)" ' | test_expect_success "setup upstream: create tags/v123 ($PROTOCOL)" ' | ||||||
| 	git -C "$upstream" update-ref refs/heads/topic $A && | 	git -C "$upstream" update-ref refs/heads/topic $A && | ||||||
| 	git -C "$upstream" update-ref refs/tags/v123 $TAG && | 	git -C "$upstream" update-ref refs/tags/v123 $TAG && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-A> refs/heads/topic | 	<COMMIT-A> refs/heads/topic | ||||||
| 	<TAG-v123> refs/tags/v123 | 	<TAG-v123> refs/tags/v123 | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success "setup proc-receive hook ($PROTOCOL)" ' | test_expect_success "setup proc-receive hook ($PROTOCOL)" ' | ||||||
| @ -125,11 +121,9 @@ test_expect_success "proc-receive: create/delete branch, and delete tag ($PROTOC | |||||||
| 	 * [new reference] <COMMIT-A> -> refs/pull/124/head | 	 * [new reference] <COMMIT-A> -> refs/pull/124/head | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual && | 	test_cmp expect actual && | ||||||
| 	git -C "$upstream" show-ref >out && |  | ||||||
| 	make_user_friendly_and_stable_output <out >actual && | 	test_cmp_refs -C "$upstream" <<-EOF | ||||||
| 	cat >expect <<-EOF && |  | ||||||
| 	<COMMIT-A> refs/heads/main | 	<COMMIT-A> refs/heads/main | ||||||
| 	<COMMIT-B> refs/heads/topic | 	<COMMIT-B> refs/heads/topic | ||||||
| 	EOF | 	EOF | ||||||
| 	test_cmp expect actual |  | ||||||
| ' | ' | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Junio C Hamano
					Junio C Hamano