git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/2] hooks: add signature using "interpret-trailers"

From
Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
Date
Jul 7, 2017, 16:07 UTC
Message-ID
<20170707160740.9748-2-kaarticsivaraam91196@gmail.com>
In-Reply-To
<20170707160740.9748-1-kaarticsivaraam91196@gmail.com>

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.

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.

While at it, name the input parameters to improve readability of script.

Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
---
 templates/hooks--prepare-commit-msg.sample | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/templates/hooks--prepare-commit-msg.sample b/templates/hooks--prepare-commit-msg.sample
index 5a638ebda..7495078cb 100755
--- a/templates/hooks--prepare-commit-msg.sample
+++ b/templates/hooks--prepare-commit-msg.sample
@@ -21,7 +21,12 @@
 # The third example adds a Signed-off-by line to the message, that can
 # still be edited.  This is rarely a good idea.
 
-sed -e '/^. Please enter the commit message /,/^#$/d' "$1" >'.sed-output.temp' && mv '.sed-output.temp' "$1"
+COMMIT_MSG_FILE=$1
+COMMIT_SOURCE=$2
+SHA1=$3
+
+SED_OUTPUT_TEMP='.sed-output-temp'
+sed -e '/^. Please enter the commit message /,/^#$/d' "$COMMIT_MSG_FILE" >"$SED_OUTPUT_TEMP" && mv "$SED_OUTPUT_TEMP" "$1"
 
 # case "$2,$3" in
 # ,|template,)
@@ -32,5 +37,14 @@ sed -e '/^. Please enter the commit message /,/^#$/d' "$1" >'.sed-output.temp' &
 #  *) ;;
 # esac
 
+# TEMP_FILE='.template-temp'
 # 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 test -z "$COMMIT_SOURCE"
+# then
+#   {
+#     echo
+#     cat "$COMMIT_MSG_FILE"
+#   } >"$TEMP_FILE"
+#   mv "$TEMP_FILE" "$COMMIT_MSG_FILE"
+# fi
-- 
2.13.2.879.g2ab69f31a.dirty
Previous: Kaartic SivaraamNext: Junio C Hamano
Message 28 of 58 in “hooks: add signature to the top of the commit message”
  1. hooks: add signature to the top of the commit messageKaartic Sivaraam, Jun 30, 2017
  2. Junio C HamanoJun 30, 2017
  3. Kaartic SivaraamJul 1, 2017
  4. "git intepret-trailers" vs. "sed script" to add the signatureKaartic Sivaraam, Jul 1, 2017
  5. hooks: add signature using "interpret-trailers"Kaartic Sivaraam, Jul 1, 2017
  6. Junio C HamanoJul 3, 2017
  7. Kaartic SivaraamJul 4, 2017
  8. Junio C HamanoJul 5, 2017
  9. hooks: add signature using "interpret-trailers"Kaartic Sivaraam, Jul 5, 2017
  10. hooks: add signature using "interpret-trailers"Kaartic Sivaraam, Jul 5, 2017
  11. Junio C HamanoJul 5, 2017
  12. Ramsay JonesJul 5, 2017
  13. Kaartic SivaraamJul 6, 2017
  14. Junio C HamanoJul 1, 2017
  15. Philip OakleyJul 1, 2017
  16. Junio C HamanoJul 1, 2017
  17. Philip OakleyJul 1, 2017
  18. Kaartic SivaraamJul 1, 2017
  19. Junio C HamanoJul 1, 2017
  20. Kaartic SivaraamJul 2, 2017
  21. hooks: replace irrelevant hook sampleKaartic Sivaraam, Jul 2, 2017
  22. hooks: replace irrelevant hook sampleKaartic Sivaraam, Jul 5, 2017
  23. Junio C HamanoJul 5, 2017
  24. Kaartic SivaraamJul 7, 2017
  25. Junio C HamanoJul 7, 2017
  26. Kaartic SivaraamJul 7, 2017
  27. 1/2 hooks: replace irrelevant hook sampleKaartic Sivaraam, Jul 7, 2017
  28. 2/2 hooks: add signature using "interpret-trailers"Kaartic Sivaraam, Jul 7, 2017
  29. Junio C HamanoJul 7, 2017
  30. 1/4 hook: cleanup scriptKaartic Sivaraam, Jul 10, 2017
  31. 2/4 hook: name the positional variablesKaartic Sivaraam, Jul 10, 2017
  32. Junio C HamanoJul 10, 2017
  33. 3/4 hook: add signature using "interpret-trailers"Kaartic Sivaraam, Jul 10, 2017
  34. Ramsay JonesJul 10, 2017
  35. Junio C HamanoJul 10, 2017
  36. 1/4 hook: cleanup scriptKaartic Sivaraam, Jul 11, 2017
  37. 3/4 hook: add sign-off using "interpret-trailers"Kaartic Sivaraam, Jul 11, 2017
  38. hook: use correct logical variableKaartic Sivaraam, Aug 14, 2017
  39. Stefan BellerAug 14, 2017
  40. Junio C HamanoAug 14, 2017
  41. Kaartic SivaraamAug 15, 2017
  42. Junio C HamanoAug 15, 2017
  43. Kaartic SivaraamAug 17, 2017
  44. hook: use correct logical variableKaartic Sivaraam, Aug 17, 2017
  45. Kaartic SivaraamAug 15, 2017
  46. 2/4 hook: name the positional variablesKaartic Sivaraam, Jul 11, 2017
  47. 4/4 hook: add a simple first exampleKaartic Sivaraam, Jul 11, 2017
  48. 4/4 hook: add a simple first exampleKaartic Sivaraam, Jul 11, 2017
  49. Kaartic SivaraamJul 11, 2017
  50. Kaartic SivaraamJul 11, 2017
  51. 4/4 hook: add a simple first exampleKaartic Sivaraam, Jul 10, 2017
  52. Junio C HamanoJul 10, 2017
  53. Kaartic SivaraamJul 11, 2017
  54. Junio C HamanoJul 11, 2017
  55. Kaartic SivaraamJul 11, 2017
  56. Kaartic SivaraamJul 11, 2017
  57. Junio C HamanoJul 10, 2017
  58. hooks: add script to HOOKS that allows adding notes from commit messageKaartic Sivaraam, Jul 2, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.