Re: [PATCH 2/4] push: teach --base for ssh:// and file://
From: Junio C Hamano <hidden>
Date: 2020-11-08 19:34:34
SZEDER Gábor [off-list ref] writes:
quoted
+ # Server does not have "six". + test_must_fail git -C file_child -c protocol.version=0 \ + push --base=an_invalid_object origin HEAD:client_branch_six 2>log && + grep "is not a valid object" logThis should rather use 'test_i18ngrep' ...quoted
+' + +test_expect_success 'push with --base that does not exist on server' ' + COMMON_HASH=$(git -C file_child rev-parse six) && + + # The push still succeeds. + GIT_TRACE_PACKET=1 git -C file_child -c protocol.version=0 \ + push --base=six origin HEAD:client_branch_six 2>log && + + # Server did not advertise "six", since it does not know it + ! grep "$COMMON_HASH .have" log +' + # Test protocol v1 with 'ssh://' transport # test_expect_success 'setup ssh wrapper' 'quoted
diff --git a/transport.c b/transport.c index ffe2115845..531ca0a834 100644 --- a/transport.c +++ b/transport.c@@ -236,6 +236,10 @@ static int set_git_option(struct git_transport_options *opts, list_objects_filter_die_if_populated(&opts->filter_options); parse_list_objects_filter(&opts->filter_options, value); return 0; + } else if (!strcmp(name, TRANS_OPT_PUSH_BASE)) { + if (get_oid(value, &opts->push_base)) + die(_("transport: '%s' is not a valid object"), value);... because the error message here is translated.quoted
+ return 0; } return 1; }
Yes, and we are getting CI failure ever since we queued this patch. Let's discard the topic for now. Thanks.