Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2021-10-18 22:45:56 +0300
committerJunio C Hamano <gitster@pobox.com>2021-10-18 23:27:36 +0300
commitc5c3486f38af50e3d63b3bd1d1d25773e4f4420a (patch)
treee42101da38232b8d8cd234d5955848613a1915c0
parente4c9538a9cdc816b3392553edcddf6692af7c0a9 (diff)
transport-helper: recognize "expecting report" error from send-pack
When a transport helper pushes via send-pack, it passes --helper-status to get a machine-readable status back for each ref. The previous commit taught the send-pack code to hand back "error expecting report" if the server did not send us the proper ref-status. And that's enough to cause us to recognize that an error occurred for the ref and print something sensible in our final status table. But we do interpret these messages on the remote-helper side to turn them back into REF_STATUS_* enum values. Recognizing this token to turn it back into REF_STATUS_EXPECTING_REPORT has two advantages: 1. We now print exactly the same message in the human-readable (and machine-readable --porcelain) output for this situation whether the transport went through a helper (e.g., http) or not (e.g., ssh). 2. If any code in the helper really cares about distinguishing EXPECT_REPORT from more generic error conditions, it could now do so. I didn't find any, so this is mostly future-proofing. So this is mostly cosmetic for now, but it seems like the least-surprising thing for the transport-helper code to be doing. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t5541-http-push-smart.sh2
-rw-r--r--transport-helper.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh
index 9c61dccc24..8ca50f8b18 100755
--- a/t/t5541-http-push-smart.sh
+++ b/t/t5541-http-push-smart.sh
@@ -519,7 +519,7 @@ test_expect_success 'report error server does not provide ref status' '
rev-parse --verify refs/tags/will-fail &&
cat >expect <<-EOF &&
To $HTTPD_URL/smart/no_report
- ! HEAD:refs/tags/will-fail [remote rejected] (expecting report)
+ ! HEAD:refs/tags/will-fail [remote failure] (remote failed to report status)
Done
EOF
test_cmp expect actual
diff --git a/transport-helper.c b/transport-helper.c
index 4be035edb8..56e36a4cf4 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -845,6 +845,10 @@ static int push_update_ref_status(struct strbuf *buf,
forced = 1;
FREE_AND_NULL(msg);
}
+ else if (!strcmp(msg, "expecting report")) {
+ status = REF_STATUS_EXPECTING_REPORT;
+ FREE_AND_NULL(msg);
+ }
}
if (state->hint)