From: Junio C Hamano <gitster@pobox.com>
To: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] hooks: add signature using "interpret-trailers"
Date: Wed, 05 Jul 2017 12:37:22 -0700 [thread overview]
Message-ID: <xmqqvan6hdzh.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170705173508.28711-1-kaarticsivaraam91196@gmail.com> (Kaartic Sivaraam's message of "Wed, 5 Jul 2017 23:05:08 +0530")
Kaartic Sivaraam <kaarticsivaraam91196@gmail.com> writes:
> The sample hook to prepare the commit message before
> a commit allows users to opt-in to add the signature
> to the commit message. The signature is added at a place
> that isn't consistent with the "-s" option of "git commit".
> Further, it could go out of view in certain cases.
>
> Add the signature in a way similar to "-s" option of
> "git commit" using git's interpret-trailers command.
OK.
> It works well in all cases except when the user invokes
> "git commit" without any arguments. In that case manually
> add a new line after the first line to ensure it's consistent
> with the output of "-s" option.
OK (but its execution can be simplified).
> While at it, name the input parameters to improve readability
> of script.
Good.
>
> Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
> ---
> Added a close quote that got missed in the previous patch.
>
> templates/hooks--prepare-commit-msg.sample | 19 +++++++++++++++----
> 1 file changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/templates/hooks--prepare-commit-msg.sample b/templates/hooks--prepare-commit-msg.sample
> index 86b8f227e..4ddab7896 100755
> --- a/templates/hooks--prepare-commit-msg.sample
> +++ b/templates/hooks--prepare-commit-msg.sample
> @@ -20,17 +20,28 @@
> # The third example adds a Signed-off-by line to the message, that can
> # still be edited. This is rarely a good idea.
>
> -case "$2,$3" in
> +COMMIT_MSG_FILE=$1
> +COMMIT_SOURCE=$2
> +SHA1=$3
> +NEW_LINE='\
> +'
> +SED_TEMP_FILE='.sed-output.temp'
Move the latter two variable definitions to where they matter,
i.e. the commented-out part that computes and adds $SOB.
> +case "$COMMIT_SOURCE,$SHA1" in
> merge,)
> - @PERL_PATH@ -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
> + @PERL_PATH@ -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$COMMIT_MSG_FILE" ;;
>
> # ,|template,)
> # @PERL_PATH@ -i.bak -pe '
> # print "\n" . `git diff --cached --name-status -r`
> -# if /^#/ && $first++ == 0' "$1" ;;
> +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
>
> *) ;;
> esac
>
> # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
> -# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
> +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
> +# if [ -z "$COMMIT_SOURCE" ]
> +# then
In our codebase (see Documentation/CodingGuidelines) we tend to
prefer "test" over "[". I.e.
if test -z "$COMMIT_SOURCE"
then
> +# sed -e "1i$NEW_LINE" "$COMMIT_MSG_FILE" >"$SED_TEMP_FILE" && mv "$SED_TEMP_FILE" "$COMMIT_MSG_FILE"
This looks like a more complex way to say
{
echo
cat "$COMMIT_MSG_FILE"
} >"$SED_TEMP_FILE" &&
mv "$SED_TEMP_FILE" "$COMMIT_MSG_FILE"
I wondered if it is safe to use a single hardcoded "$SED_TEMP_FILE",
but I think it is OK.
> +# fi
Thanks.
next prev parent reply other threads:[~2017-07-05 19:37 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-30 15:43 [PATCH] hooks: add signature to the top of the commit message Kaartic Sivaraam
2017-06-30 16:44 ` Junio C Hamano
2017-07-01 14:15 ` Kaartic Sivaraam
2017-07-01 16:16 ` "git intepret-trailers" vs. "sed script" to add the signature Kaartic Sivaraam
2017-07-01 17:32 ` [PATCH/RFC] hooks: add signature using "interpret-trailers" Kaartic Sivaraam
2017-07-03 16:58 ` "git intepret-trailers" vs. "sed script" to add the signature Junio C Hamano
2017-07-04 19:16 ` Kaartic Sivaraam
2017-07-05 1:48 ` Junio C Hamano
2017-07-05 17:00 ` [PATCH] hooks: add signature using "interpret-trailers" Kaartic Sivaraam
2017-07-05 17:35 ` Kaartic Sivaraam
2017-07-05 19:37 ` Junio C Hamano [this message]
2017-07-05 20:14 ` Ramsay Jones
2017-07-06 14:30 ` Kaartic Sivaraam
2017-07-01 17:36 ` [PATCH] hooks: add signature to the top of the commit message Junio C Hamano
2017-07-01 18:40 ` Philip Oakley
2017-07-01 20:28 ` Junio C Hamano
2017-07-01 21:00 ` Philip Oakley
2017-07-01 18:52 ` Kaartic Sivaraam
2017-07-01 20:31 ` Junio C Hamano
2017-07-02 11:19 ` Kaartic Sivaraam
2017-07-02 11:27 ` [PATCH/RFC] hooks: replace irrelevant hook sample Kaartic Sivaraam
2017-07-05 16:51 ` [PATCH] " Kaartic Sivaraam
2017-07-05 19:50 ` Junio C Hamano
2017-07-07 11:53 ` Kaartic Sivaraam
2017-07-07 15:05 ` Junio C Hamano
2017-07-07 15:24 ` Kaartic Sivaraam
2017-07-07 16:07 ` [PATCH 1/2] " Kaartic Sivaraam
2017-07-07 16:07 ` [PATCH 2/2] hooks: add signature using "interpret-trailers" Kaartic Sivaraam
2017-07-07 18:27 ` [PATCH 1/2] hooks: replace irrelevant hook sample Junio C Hamano
2017-07-10 14:17 ` [PATCH 1/4] hook: cleanup script Kaartic Sivaraam
2017-07-10 14:17 ` [PATCH 2/4] hook: name the positional variables Kaartic Sivaraam
2017-07-10 19:51 ` Junio C Hamano
2017-07-10 14:17 ` [PATCH 3/4] hook: add signature using "interpret-trailers" Kaartic Sivaraam
2017-07-10 15:13 ` Ramsay Jones
2017-07-10 19:53 ` Junio C Hamano
2017-07-11 14:11 ` [PATCH 1/4] hook: cleanup script Kaartic Sivaraam
2017-07-11 14:11 ` [PATCH 2/4] hook: name the positional variables Kaartic Sivaraam
2017-07-11 14:11 ` [PATCH 3/4] hook: add sign-off using "interpret-trailers" Kaartic Sivaraam
2017-08-14 8:46 ` [PATCH] hook: use correct logical variable Kaartic Sivaraam
2017-08-14 17:54 ` Stefan Beller
2017-08-14 18:19 ` Junio C Hamano
2017-08-15 9:31 ` Kaartic Sivaraam
2017-08-15 17:28 ` Junio C Hamano
2017-08-17 2:47 ` Kaartic Sivaraam
2017-08-17 2:50 ` [PATCH v2/RFC] " Kaartic Sivaraam
2017-08-15 9:32 ` [PATCH] " Kaartic Sivaraam
2017-07-11 14:11 ` [PATCH 4/4] hook: add a simple first example Kaartic Sivaraam
2017-07-11 14:30 ` Kaartic Sivaraam
2017-07-11 13:10 ` [PATCH 3/4] hook: add signature using "interpret-trailers" Kaartic Sivaraam
2017-07-11 13:18 ` Kaartic Sivaraam
2017-07-10 14:17 ` [PATCH 4/4] hook: add a simple first example Kaartic Sivaraam
2017-07-10 20:02 ` Junio C Hamano
2017-07-11 13:29 ` Kaartic Sivaraam
2017-07-11 16:03 ` Junio C Hamano
2017-07-11 18:04 ` Kaartic Sivaraam
2017-07-11 18:06 ` Kaartic Sivaraam
2017-07-10 19:50 ` [PATCH 1/4] hook: cleanup script Junio C Hamano
2017-07-02 11:29 ` [PATCH] hooks: add script to HOOKS that allows adding notes from commit message Kaartic Sivaraam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqvan6hdzh.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=kaarticsivaraam91196@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).