fast-export: rename --signed-tags='warn' to 'warn-verbatim'

The --signed-tags= option takes one of five arguments specifying how to handle signed tags during export. Among these arguments, 'strip' is to 'warn-strip' as 'verbatim' is to 'warn' (the unmentioned argument is 'abort', which stops the fast-export process entirely). That is, signatures are either stripped or copied verbatim while exporting, with or without a warning. Match the pattern and rename 'warn' to 'warn-verbatim' to make it clear that it instructs fast-export to copy signatures verbatim. To maintain backwards compatibility, 'warn' is still recognized as deprecated synonym of 'warn-verbatim'. Signed-off-by: Luke Shumaker <lukeshu@datawire.io> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Luke Shumaker committed Mar 10, 2025 at 16:57 UTC 3b24d86c56949ca0485bb279e49671b3942ad5a6
3 files changed +25 -7
Documentation/git-fast-export.adoc
+3 -3
@@ -27,7 +27,7 @@ OPTIONS
27 Insert 'progress' statements every <n> objects, to be shown by
28 'git fast-import' during import.
29
30 ---signed-tags=(verbatim|warn|warn-strip|strip|abort)::
30 +--signed-tags=(verbatim|warn-verbatim|warn-strip|strip|abort)::
31 Specify how to handle signed tags. Since any transformation
32 after the export can change the tag names (which can also happen
33 when excluding revisions) the signatures will not match.
@@ -36,8 +36,8 @@ When asking to 'abort' (which is the default), this program will die
36 when encountering a signed tag. With 'strip', the tags will silently
37 be made unsigned, with 'warn-strip' they will be made unsigned but a
38 warning will be displayed, with 'verbatim', they will be silently
39 -exported and with 'warn', they will be exported, but you will see a
40 -warning.
39 +exported and with 'warn-verbatim' (or 'warn', a deprecated synonym),
40 +they will be exported, but you will see a warning.
41
42 --tag-of-filtered-object=(abort|drop|rewrite)::
43 Specify how to handle tags whose tagged object is filtered out.
builtin/fast-export.c
+4 -4
@@ -36,7 +36,7 @@ static const char *fast_export_usage[] = {
36 };
37
38 static int progress;
39 -static enum signed_tag_mode { SIGNED_TAG_ABORT, VERBATIM, WARN, WARN_STRIP, STRIP } signed_tag_mode = SIGNED_TAG_ABORT;
39 +static enum signed_tag_mode { SIGNED_TAG_ABORT, VERBATIM, WARN_VERBATIM, WARN_STRIP, STRIP } signed_tag_mode = SIGNED_TAG_ABORT;
40 static enum tag_of_filtered_mode { TAG_FILTERING_ABORT, DROP, REWRITE } tag_of_filtered_mode = TAG_FILTERING_ABORT;
41 static enum reencode_mode { REENCODE_ABORT, REENCODE_YES, REENCODE_NO } reencode_mode = REENCODE_ABORT;
42 static int fake_missing_tagger;
@@ -62,8 +62,8 @@ static int parse_opt_signed_tag_mode(const struct option *opt,
62 *val = SIGNED_TAG_ABORT;
63 else if (!strcmp(arg, "verbatim") || !strcmp(arg, "ignore"))
64 *val = VERBATIM;
65 - else if (!strcmp(arg, "warn"))
66 - *val = WARN;
65 + else if (!strcmp(arg, "warn-verbatim") || !strcmp(arg, "warn"))
66 + *val = WARN_VERBATIM;
67 else if (!strcmp(arg, "warn-strip"))
68 *val = WARN_STRIP;
69 else if (!strcmp(arg, "strip"))
@@ -833,7 +833,7 @@ static void handle_tag(const char *name, struct tag *tag)
833 die("encountered signed tag %s; use "
834 "--signed-tags=<mode> to handle it",
835 oid_to_hex(&tag->object.oid));
836 - case WARN:
836 + case WARN_VERBATIM:
837 warning("exporting signed tag %s",
838 oid_to_hex(&tag->object.oid));
839 /* fallthru */
t/t9350-fast-export.sh
+18
@@ -253,6 +253,24 @@ test_expect_success 'signed-tags=verbatim' '
253
254 '
255
256 +test_expect_success 'signed-tags=warn-verbatim' '
257 +
258 + git fast-export --signed-tags=warn-verbatim sign-your-name >output 2>err &&
259 + grep PGP output &&
260 + test -s err
261 +
262 +'
263 +
264 +# 'warn' is a backward-compatibility alias for 'warn-verbatim'; test
265 +# that it keeps working.
266 +test_expect_success 'signed-tags=warn' '
267 +
268 + git fast-export --signed-tags=warn sign-your-name >output 2>err &&
269 + grep PGP output &&
270 + test -s err
271 +
272 +'
273 +
274 test_expect_success 'signed-tags=strip' '
275
276 git fast-export --signed-tags=strip sign-your-name > output &&