transport-helper: add 'signed-tags' capability
This allows a remote helper using the 'export' protocol to specify that it supports signed tags, changing the handing from 'warn-strip' to 'verbatim'. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b8bd826f3a
commit
0d957a4df5
@ -202,6 +202,10 @@ capability then it should advertise `refspec *:*`.
|
|||||||
marks specified in <file> before processing any input. For details,
|
marks specified in <file> before processing any input. For details,
|
||||||
read up on '--import-marks=<file>' in linkgit:git-fast-export[1].
|
read up on '--import-marks=<file>' in linkgit:git-fast-export[1].
|
||||||
|
|
||||||
|
'signed-tags'::
|
||||||
|
This modifies the 'export' capability, instructing Git to pass
|
||||||
|
'--signed-tags=verbatim' to linkgit:git-fast-export[1]. In the
|
||||||
|
absence of this capability, Git will use '--signed-tags=warn-strip'.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ do
|
|||||||
echo "*import-marks $gitmarks"
|
echo "*import-marks $gitmarks"
|
||||||
echo "*export-marks $gitmarks"
|
echo "*export-marks $gitmarks"
|
||||||
fi
|
fi
|
||||||
|
test -n "$GIT_REMOTE_TESTGIT_SIGNED_TAGS" && echo "signed-tags"
|
||||||
echo
|
echo
|
||||||
;;
|
;;
|
||||||
list)
|
list)
|
||||||
|
@ -173,7 +173,17 @@ test_expect_success GPG 'push signed tag' '
|
|||||||
git tag -s -m signed-tag signed-tag &&
|
git tag -s -m signed-tag signed-tag &&
|
||||||
git push origin signed-tag
|
git push origin signed-tag
|
||||||
) &&
|
) &&
|
||||||
compare_refs local signed-tag^{} server signed-tag^{}
|
compare_refs local signed-tag^{} server signed-tag^{} &&
|
||||||
|
test_must_fail compare_refs local signed-tag server signed-tag
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success GPG 'push signed tag with signed-tags capability' '
|
||||||
|
(cd local &&
|
||||||
|
git checkout master &&
|
||||||
|
git tag -s -m signed-tag signed-tag-2 &&
|
||||||
|
GIT_REMOTE_TESTGIT_SIGNED_TAGS=1 git push origin signed-tag-2
|
||||||
|
) &&
|
||||||
|
compare_refs local signed-tag-2 server signed-tag-2
|
||||||
'
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -25,6 +25,7 @@ struct helper_data {
|
|||||||
option : 1,
|
option : 1,
|
||||||
push : 1,
|
push : 1,
|
||||||
connect : 1,
|
connect : 1,
|
||||||
|
signed_tags : 1,
|
||||||
no_disconnect_req : 1;
|
no_disconnect_req : 1;
|
||||||
char *export_marks;
|
char *export_marks;
|
||||||
char *import_marks;
|
char *import_marks;
|
||||||
@ -191,6 +192,8 @@ static struct child_process *get_helper(struct transport *transport)
|
|||||||
refspecs[refspec_nr++] = xstrdup(capname + strlen("refspec "));
|
refspecs[refspec_nr++] = xstrdup(capname + strlen("refspec "));
|
||||||
} else if (!strcmp(capname, "connect")) {
|
} else if (!strcmp(capname, "connect")) {
|
||||||
data->connect = 1;
|
data->connect = 1;
|
||||||
|
} else if (!strcmp(capname, "signed-tags")) {
|
||||||
|
data->signed_tags = 1;
|
||||||
} else if (!prefixcmp(capname, "export-marks ")) {
|
} else if (!prefixcmp(capname, "export-marks ")) {
|
||||||
struct strbuf arg = STRBUF_INIT;
|
struct strbuf arg = STRBUF_INIT;
|
||||||
strbuf_addstr(&arg, "--export-marks=");
|
strbuf_addstr(&arg, "--export-marks=");
|
||||||
@ -413,7 +416,8 @@ static int get_exporter(struct transport *transport,
|
|||||||
fastexport->argv = xcalloc(6 + revlist_args->nr, sizeof(*fastexport->argv));
|
fastexport->argv = xcalloc(6 + revlist_args->nr, sizeof(*fastexport->argv));
|
||||||
fastexport->argv[argc++] = "fast-export";
|
fastexport->argv[argc++] = "fast-export";
|
||||||
fastexport->argv[argc++] = "--use-done-feature";
|
fastexport->argv[argc++] = "--use-done-feature";
|
||||||
fastexport->argv[argc++] = "--signed-tags=warn-strip";
|
fastexport->argv[argc++] = data->signed_tags ?
|
||||||
|
"--signed-tags=verbatim" : "--signed-tags=warn-strip";
|
||||||
if (data->export_marks)
|
if (data->export_marks)
|
||||||
fastexport->argv[argc++] = data->export_marks;
|
fastexport->argv[argc++] = data->export_marks;
|
||||||
if (data->import_marks)
|
if (data->import_marks)
|
||||||
|
Loading…
Reference in New Issue
Block a user