* [PATCH 0/2] subtree: support GPG commit signing @ 2023-04-10 17:01 Allen Reese via GitGitGadget 2023-04-10 17:01 ` [PATCH 1/2] " Jacques Vidrine via GitGitGadget 2023-04-10 17:01 ` [PATCH 2/2] contrib/subtree: fix gpg_sign_arg not being passed to git merge Allen Reese via GitGitGadget 0 siblings, 2 replies; 4+ messages in thread From: Allen Reese via GitGitGadget @ 2023-04-10 17:01 UTC (permalink / raw) To: git; +Cc: Allen Reese Add support for -S/--gpg-sign/--no-gpg-sign command line options and commit.gpgsign configuration. These are passed to invocations of git commit-tree. cc: Avery apenwarr@gmail.com Allen Reese (1): contrib/subtree: fix gpg_sign_arg not being passed to git merge. Jacques Vidrine (1): subtree: support GPG commit signing contrib/subtree/git-subtree.sh | 36 ++++++++++++++++++++++++------ contrib/subtree/git-subtree.txt | 9 ++++++++ contrib/subtree/t/t7900-subtree.sh | 2 +- 3 files changed, 39 insertions(+), 8 deletions(-) base-commit: 0607f793cbe0af16aee6d2480056d891835884bd Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1490%2Fareese%2Fgit-subtree-support-gpg-signing-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1490/areese/git-subtree-support-gpg-signing-v1 Pull-Request: https://github.com/git/git/pull/1490 -- gitgitgadget ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] subtree: support GPG commit signing 2023-04-10 17:01 [PATCH 0/2] subtree: support GPG commit signing Allen Reese via GitGitGadget @ 2023-04-10 17:01 ` Jacques Vidrine via GitGitGadget 2023-04-10 17:59 ` Allen Reese 2023-04-10 17:01 ` [PATCH 2/2] contrib/subtree: fix gpg_sign_arg not being passed to git merge Allen Reese via GitGitGadget 1 sibling, 1 reply; 4+ messages in thread From: Jacques Vidrine via GitGitGadget @ 2023-04-10 17:01 UTC (permalink / raw) To: git; +Cc: Allen Reese, Jacques Vidrine From: Jacques Vidrine <t@fboundp.com> Add support for -S/--gpg-sign/--no-gpg-sign command line options and commit.gpgsign configuration. These are passed to invocations of `git commit-tree`. Signed-off-by: Allen Reese <java.allen@apple.com> Signed-off-by: Jacques Vidrine <t@fboundp.com> --- contrib/subtree/git-subtree.sh | 24 +++++++++++++++++++----- contrib/subtree/git-subtree.txt | 9 +++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh index 10c9c87839a..553b4391deb 100755 --- a/contrib/subtree/git-subtree.sh +++ b/contrib/subtree/git-subtree.sh @@ -46,6 +46,8 @@ rejoin merge the new branch back into HEAD options for 'add' and 'merge' (also: 'pull', 'split --rejoin', and 'push --rejoin') squash merge subtree changes as a single commit m,message= use the given message as the commit message for the merge commit +S,gpg-sign? GPG-sign commits, optionally specifying keyid. +no-gpg-sign Disable GPG commit signing. " indent=0 @@ -165,6 +167,7 @@ main () { arg_quiet= arg_debug= arg_prefix= + arg_gpgsign= arg_split_branch= arg_split_onto= arg_split_ignore_joins= @@ -240,6 +243,9 @@ main () { test -n "$allow_addmerge" || die_incompatible_opt "$opt" "$arg_command" arg_addmerge_squash= ;; + -S*|--gpg-sign=*|--no-gpg-sign) + arg_gpgsign="${opt}" + ;; --) break ;; @@ -268,6 +274,12 @@ main () { dir="$(dirname "$arg_prefix/.")" + if test -z "$arg_gpgsign" && + git config --bool commit.gpgsign >/dev/null + then + arg_gpgsign="-S" + fi + debug "command: {$arg_command}" debug "quiet: {$arg_quiet}" debug "dir: {$dir}" @@ -534,7 +546,7 @@ copy_commit () { printf "%s" "$arg_split_annotate" cat ) | - git commit-tree "$2" $3 # reads the rest of stdin + git commit-tree $arg_gpgsign "$2" $3 # reads the rest of stdin ) || die "fatal: can't copy commit $1" } @@ -674,10 +686,10 @@ new_squash_commit () { if test -n "$old" then squash_msg "$dir" "$oldsub" "$newsub" | - git commit-tree "$tree" -p "$old" || exit $? + git commit-tree $arg_gpgsign "$tree" -p "$old" || exit $? else squash_msg "$dir" "" "$newsub" | - git commit-tree "$tree" || exit $? + git commit-tree $arg_gpgsign "$tree" || exit $? fi } @@ -900,11 +912,13 @@ cmd_add_commit () { then rev=$(new_squash_commit "" "" "$rev") || exit $? commit=$(add_squashed_msg "$rev" "$dir" | - git commit-tree "$tree" $headp -p "$rev") || exit $? + git commit-tree $arg_gpgsign "$tree" \ + $headp -p "$rev") || exit $? else revp=$(peel_committish "$rev") || exit $? commit=$(add_msg "$dir" $headrev "$rev" | - git commit-tree "$tree" $headp -p "$revp") || exit $? + git commit-tree $arg_gpgsign "$tree" \ + $headp -p "$revp") || exit $? fi git reset "$commit" || exit $? diff --git a/contrib/subtree/git-subtree.txt b/contrib/subtree/git-subtree.txt index 004abf415b8..fa54541b288 100644 --- a/contrib/subtree/git-subtree.txt +++ b/contrib/subtree/git-subtree.txt @@ -185,6 +185,15 @@ subproject. --message=<message>:: Specify <message> as the commit message for the merge commit. +-S[<keyid>]:: +--gpg-sign[=<keyid>]:: +--no-gpg-sign:: + GPG-sign commits. The `keyid` argument is optional and + defaults to the committer identity; if specified, it must be + stuck to the option without a space. `--no-gpg-sign` is useful to + countermand both `commit.gpgSign` configuration variable, and + earlier `--gpg-sign`. + OPTIONS FOR 'split' (ALSO: 'push') ---------------------------------- These options for 'split' may also be given to 'push' (which wraps -- gitgitgadget ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] subtree: support GPG commit signing 2023-04-10 17:01 ` [PATCH 1/2] " Jacques Vidrine via GitGitGadget @ 2023-04-10 17:59 ` Allen Reese 0 siblings, 0 replies; 4+ messages in thread From: Allen Reese @ 2023-04-10 17:59 UTC (permalink / raw) To: git; +Cc: Jacques Vidrine, apenwarr, Jacques Vidrine via GitGitGadget Adding Avery, as I don’t seem to have managed to cc Avery as part of the gitgadet pr. > On Apr 10, 2023, at 10:01 AM, Jacques Vidrine via GitGitGadget <gitgitgadget@gmail.com> wrote: > > From: Jacques Vidrine <t@fboundp.com> > > Add support for -S/--gpg-sign/--no-gpg-sign command line options > and commit.gpgsign configuration. These are passed to invocations > of `git commit-tree`. > > Signed-off-by: Allen Reese <java.allen@apple.com> > Signed-off-by: Jacques Vidrine <t@fboundp.com> > --- > contrib/subtree/git-subtree.sh | 24 +++++++++++++++++++----- > contrib/subtree/git-subtree.txt | 9 +++++++++ > 2 files changed, 28 insertions(+), 5 deletions(-) > > diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh > index 10c9c87839a..553b4391deb 100755 > --- a/contrib/subtree/git-subtree.sh > +++ b/contrib/subtree/git-subtree.sh > @@ -46,6 +46,8 @@ rejoin merge the new branch back into HEAD > options for 'add' and 'merge' (also: 'pull', 'split --rejoin', and 'push --rejoin') > squash merge subtree changes as a single commit > m,message= use the given message as the commit message for the merge commit > +S,gpg-sign? GPG-sign commits, optionally specifying keyid. > +no-gpg-sign Disable GPG commit signing. > " > > indent=0 > @@ -165,6 +167,7 @@ main () { > arg_quiet= > arg_debug= > arg_prefix= > + arg_gpgsign= > arg_split_branch= > arg_split_onto= > arg_split_ignore_joins= > @@ -240,6 +243,9 @@ main () { > test -n "$allow_addmerge" || die_incompatible_opt "$opt" "$arg_command" > arg_addmerge_squash= > ;; > + -S*|--gpg-sign=*|--no-gpg-sign) > + arg_gpgsign="${opt}" > + ;; > --) > break > ;; > @@ -268,6 +274,12 @@ main () { > > dir="$(dirname "$arg_prefix/.")" > > + if test -z "$arg_gpgsign" && > + git config --bool commit.gpgsign >/dev/null > + then > + arg_gpgsign="-S" > + fi > + > debug "command: {$arg_command}" > debug "quiet: {$arg_quiet}" > debug "dir: {$dir}" > @@ -534,7 +546,7 @@ copy_commit () { > printf "%s" "$arg_split_annotate" > cat > ) | > - git commit-tree "$2" $3 # reads the rest of stdin > + git commit-tree $arg_gpgsign "$2" $3 # reads the rest of stdin > ) || die "fatal: can't copy commit $1" > } > > @@ -674,10 +686,10 @@ new_squash_commit () { > if test -n "$old" > then > squash_msg "$dir" "$oldsub" "$newsub" | > - git commit-tree "$tree" -p "$old" || exit $? > + git commit-tree $arg_gpgsign "$tree" -p "$old" || exit $? > else > squash_msg "$dir" "" "$newsub" | > - git commit-tree "$tree" || exit $? > + git commit-tree $arg_gpgsign "$tree" || exit $? > fi > } > > @@ -900,11 +912,13 @@ cmd_add_commit () { > then > rev=$(new_squash_commit "" "" "$rev") || exit $? > commit=$(add_squashed_msg "$rev" "$dir" | > - git commit-tree "$tree" $headp -p "$rev") || exit $? > + git commit-tree $arg_gpgsign "$tree" \ > + $headp -p "$rev") || exit $? > else > revp=$(peel_committish "$rev") || exit $? > commit=$(add_msg "$dir" $headrev "$rev" | > - git commit-tree "$tree" $headp -p "$revp") || exit $? > + git commit-tree $arg_gpgsign "$tree" \ > + $headp -p "$revp") || exit $? > fi > git reset "$commit" || exit $? > > diff --git a/contrib/subtree/git-subtree.txt b/contrib/subtree/git-subtree.txt > index 004abf415b8..fa54541b288 100644 > --- a/contrib/subtree/git-subtree.txt > +++ b/contrib/subtree/git-subtree.txt > @@ -185,6 +185,15 @@ subproject. > --message=<message>:: > Specify <message> as the commit message for the merge commit. > > +-S[<keyid>]:: > +--gpg-sign[=<keyid>]:: > +--no-gpg-sign:: > + GPG-sign commits. The `keyid` argument is optional and > + defaults to the committer identity; if specified, it must be > + stuck to the option without a space. `--no-gpg-sign` is useful to > + countermand both `commit.gpgSign` configuration variable, and > + earlier `--gpg-sign`. > + > OPTIONS FOR 'split' (ALSO: 'push') > ---------------------------------- > These options for 'split' may also be given to 'push' (which wraps > -- > gitgitgadget > ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/2] contrib/subtree: fix gpg_sign_arg not being passed to git merge. 2023-04-10 17:01 [PATCH 0/2] subtree: support GPG commit signing Allen Reese via GitGitGadget 2023-04-10 17:01 ` [PATCH 1/2] " Jacques Vidrine via GitGitGadget @ 2023-04-10 17:01 ` Allen Reese via GitGitGadget 1 sibling, 0 replies; 4+ messages in thread From: Allen Reese via GitGitGadget @ 2023-04-10 17:01 UTC (permalink / raw) To: git; +Cc: Allen Reese, Allen Reese From: Allen Reese <allen_reese@apple.com> Replace immitate -> imitate. cc: Avery apenwarr@gmail.com Signed-off-by: Allen Reese <allen_reese@apple.com> --- contrib/subtree/git-subtree.sh | 14 +++++++++++--- contrib/subtree/t/t7900-subtree.sh | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh index 553b4391deb..18dc7f8a4c2 100755 --- a/contrib/subtree/git-subtree.sh +++ b/contrib/subtree/git-subtree.sh @@ -243,8 +243,16 @@ main () { test -n "$allow_addmerge" || die_incompatible_opt "$opt" "$arg_command" arg_addmerge_squash= ;; - -S*|--gpg-sign=*|--no-gpg-sign) + -S|--gpg-sign|--no-gpg-sign) arg_gpgsign="${opt}" + case $1 in + -*) + ;; + *) + arg_gpgsign=${opt}${1} + shift + ;; + esac ;; --) break @@ -1053,10 +1061,10 @@ cmd_merge () { if test -n "$arg_addmerge_message" then - git merge --no-ff -Xsubtree="$arg_prefix" \ + git merge --no-ff $arg_gpgsign -Xsubtree="$arg_prefix" \ --message="$arg_addmerge_message" "$rev" else - git merge --no-ff -Xsubtree="$arg_prefix" $rev + git merge --no-ff $arg_gpgsign -Xsubtree="$arg_prefix" $rev fi } diff --git a/contrib/subtree/t/t7900-subtree.sh b/contrib/subtree/t/t7900-subtree.sh index 341c169eca7..fa5bd9b7af6 100755 --- a/contrib/subtree/t/t7900-subtree.sh +++ b/contrib/subtree/t/t7900-subtree.sh @@ -47,7 +47,7 @@ last_commit_subject () { # pre-2.32.0 versions of 'git subtree' would write the hash of the tag # (sub1 below), instead of the commit (sub1^{commit}) in the # "git-subtree-split" trailer. -# We immitate this behaviour below using a replace ref. +# We imitate this behaviour below using a replace ref. # This function creates 3 repositories: # - $1 # - $1-sub (added as subtree "sub" in $1) -- gitgitgadget ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-04-10 19:00 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-04-10 17:01 [PATCH 0/2] subtree: support GPG commit signing Allen Reese via GitGitGadget 2023-04-10 17:01 ` [PATCH 1/2] " Jacques Vidrine via GitGitGadget 2023-04-10 17:59 ` Allen Reese 2023-04-10 17:01 ` [PATCH 2/2] contrib/subtree: fix gpg_sign_arg not being passed to git merge Allen Reese via GitGitGadget
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.