* [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
* [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
* 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
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.