git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] Allow usage of --gpg-sign flag in commit-tree builtin.
@ 2019-01-17 19:29 Brandon Richardson
  2019-01-17 20:24 ` Martin Ågren
  0 siblings, 1 reply; 2+ messages in thread
From: Brandon Richardson @ 2019-01-17 19:29 UTC (permalink / raw)
  To: git; +Cc: Brandon Richardson

Signed-off-by: Brandon Richardson <brandon1024.br@gmail.com>
---
Hi,

This is my first contribution, so please bear with me. All feedback
is appreciated.

Ran into this issue while writing a signed commit object manually.
Here are the steps I followed to replicate the issue:

mkdir test && cd test
git init
echo 'test' > test.txt
git hash-object -w test.txt
git update-index --add --cacheinfo 100644 <blob hash> test.txt
git write-tree
git commit-tree --gpg-sign -m 'test commit msg' <tree obj hash>

Thanks,
Brandon

 builtin/commit-tree.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/builtin/commit-tree.c b/builtin/commit-tree.c
index 9ec36a82b..9a06594f6 100644
--- a/builtin/commit-tree.c
+++ b/builtin/commit-tree.c
@@ -66,7 +66,9 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix)
 			continue;
 		}
 
-		if (skip_prefix(arg, "-S", &sign_commit))
+		if (skip_prefix(arg, "-S", &sign_commit) ||
+			skip_prefix(arg, "--gpg-sign=", &sign_commit) ||
+			skip_prefix(arg, "--gpg-sign", &sign_commit))
 			continue;
 
 		if (!strcmp(arg, "--no-gpg-sign")) {
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] Allow usage of --gpg-sign flag in commit-tree builtin.
  2019-01-17 19:29 [PATCH] Allow usage of --gpg-sign flag in commit-tree builtin Brandon Richardson
@ 2019-01-17 20:24 ` Martin Ågren
  0 siblings, 0 replies; 2+ messages in thread
From: Martin Ågren @ 2019-01-17 20:24 UTC (permalink / raw)
  To: Brandon Richardson; +Cc: Git Mailing List

Hi Brandon,

Welcome to the list! :-)

On Thu, 17 Jan 2019 at 20:30, Brandon Richardson
<brandon1024.br@gmail.com> wrote:

> Subject: [PATCH] Allow usage of --gpg-sign flag in commit-tree builtin.

Good find!

Maybe "commit-tree: handle --gpg-sign" which looks more like what we
see in `git log --oneline builtin/commit-tree.c`.

> Signed-off-by: Brandon Richardson <brandon1024.br@gmail.com>

It could be worthwhile to note in the proposed commit message that this
option is actually documented, since 55ca3f99ae ("commit-tree: add and
document --no-gpg-sign", 2013-12-13), so it's clearly an omission that
it's not implemented.

> Here are the steps I followed to replicate the issue:
>
> mkdir test && cd test
> git init
> echo 'test' > test.txt
> git hash-object -w test.txt
> git update-index --add --cacheinfo 100644 <blob hash> test.txt
> git write-tree
> git commit-tree --gpg-sign -m 'test commit msg' <tree obj hash>

Have you looked at turning this into a test in the t/ directory?
Grepping a little suggests that t7510-signed-commit.sh might be a good
spot. A test would make the patch more obviously correct, and would make
sure that this doesn't regress in the future.

> -               if (skip_prefix(arg, "-S", &sign_commit))
> +               if (skip_prefix(arg, "-S", &sign_commit) ||
> +                       skip_prefix(arg, "--gpg-sign=", &sign_commit) ||
> +                       skip_prefix(arg, "--gpg-sign", &sign_commit))
>                         continue;

This would match "--gpg-signfoo", which seems like a bug. The first two
`skip_prefix()` calls look ok. Then maybe

  if (!strcmp(arg, "--gpg-sign")) {
          sign_commit = "";
          continue;
  }

That's entirely untested, though.

Thanks for looking into this, rather than just side-stepping it. ;-)

Martin

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-01-17 20:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-17 19:29 [PATCH] Allow usage of --gpg-sign flag in commit-tree builtin Brandon Richardson
2019-01-17 20:24 ` Martin Ågren

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).