Merge branch 'br/commit-tree-fully-spelled-gpg-sign-option'
authorJunio C Hamano <gitster@pobox.com>
Thu, 7 Feb 2019 06:05:25 +0000 (22:05 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 7 Feb 2019 06:05:25 +0000 (22:05 -0800)
The documentation of "git commit-tree" said that the command
understands "--gpg-sign" in addition to "-S", but the command line
parser did not know about the longhand, which has been corrected.

* br/commit-tree-fully-spelled-gpg-sign-option:
commit-tree: add missing --gpg-sign flag
t7510: invoke git as part of &&-chain

builtin/commit-tree.c
t/t7510-signed-commit.sh
index 9ec36a82b63c0216cca11a709310e12174726e91..12cc403bd7eac3f3c195ce6533feee1865139bae 100644 (file)
@@ -66,7 +66,13 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix)
                        continue;
                }
 
-               if (skip_prefix(arg, "-S", &sign_commit))
+               if (!strcmp(arg, "--gpg-sign")) {
+                   sign_commit = "";
+                   continue;
+               }
+
+               if (skip_prefix(arg, "-S", &sign_commit) ||
+                       skip_prefix(arg, "--gpg-sign=", &sign_commit))
                        continue;
 
                if (!strcmp(arg, "--no-gpg-sign")) {
index 86d3f93fa22e45ba9dda24c49ec02df14e22ebc3..682b23a06818cddf6ff89e11b4395d32cebe9758 100755 (executable)
@@ -49,15 +49,28 @@ test_expect_success GPG 'create signed commits' '
        git tag eighth-signed-alt &&
 
        # commit.gpgsign is still on but this must not be signed
-       git tag ninth-unsigned $(echo 9 | git commit-tree HEAD^{tree}) &&
+       echo 9 | git commit-tree HEAD^{tree} >oid &&
+       test_line_count = 1 oid &&
+       git tag ninth-unsigned $(cat oid) &&
        # explicit -S of course must sign.
-       git tag tenth-signed $(echo 9 | git commit-tree -S HEAD^{tree})
+       echo 10 | git commit-tree -S HEAD^{tree} >oid &&
+       test_line_count = 1 oid &&
+       git tag tenth-signed $(cat oid) &&
+
+       # --gpg-sign[=<key-id>] must sign.
+       echo 11 | git commit-tree --gpg-sign HEAD^{tree} >oid &&
+       test_line_count = 1 oid &&
+       git tag eleventh-signed $(cat oid) &&
+       echo 12 | git commit-tree --gpg-sign=B7227189 HEAD^{tree} >oid &&
+       test_line_count = 1 oid &&
+       git tag twelfth-signed-alt $(cat oid)
 '
 
 test_expect_success GPG 'verify and show signatures' '
        (
                for commit in initial second merge fourth-signed \
-                       fifth-signed sixth-signed seventh-signed tenth-signed
+                       fifth-signed sixth-signed seventh-signed tenth-signed \
+                       eleventh-signed
                do
                        git verify-commit $commit &&
                        git show --pretty=short --show-signature $commit >actual &&
@@ -78,7 +91,7 @@ test_expect_success GPG 'verify and show signatures' '
                done
        ) &&
        (
-               for commit in eighth-signed-alt
+               for commit in eighth-signed-alt twelfth-signed-alt
                do
                        git show --pretty=short --show-signature $commit >actual &&
                        grep "Good signature from" actual &&