commit-tree: add missing --gpg-sign flag
authorBrandon Richardson <brandon1024.br@gmail.com>
Sat, 19 Jan 2019 23:23:34 +0000 (19:23 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 22 Jan 2019 19:08:35 +0000 (11:08 -0800)
Add --gpg-sign option in commit-tree, which was documented, but not
implemented, in 55ca3f99ae. Add tests for the --gpg-sign option.

Signed-off-by: Brandon Richardson <brandon1024.br@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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 58f528b98faef1e1823d9ba423ff309c572b8f91..682b23a06818cddf6ff89e11b4395d32cebe9758 100755 (executable)
@@ -55,13 +55,22 @@ test_expect_success GPG 'create signed commits' '
        # explicit -S of course must sign.
        echo 10 | git commit-tree -S HEAD^{tree} >oid &&
        test_line_count = 1 oid &&
-       git tag tenth-signed $(cat 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 &&
@@ -82,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 &&