From 653f8b711be3344e8c617512629270661b24fa86 Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Wed, 8 Apr 2020 10:38:41 +0900 Subject: [PATCH] commit-msg: Insert Change-Id at start of trailers In older versions of Gerrit the Change-Id field was inserted at the start of the trailers. Commit 68296f71804feab2e0ae18ae33f834a8a41621e4 simplified the trailers code by using git trailers instead of custom code but now inserts Change-Id at the end of the trailers section. A consequence of this is that folks who sign-off their commits using `git commit -s` now has the sign-off appear first followed by Change-Id. If the user then runs `git commit -s --amend` to update the change because the Sign-off-by line is not last, git inserts a 2nd duplicate Signed-off-by line. This patch simply restores the previous behaviour of the Gerrit commit-msg hook where Change-Id would be inserted before the Sign-off-by line to avoid this issue. Backported from [1] by Thanh Ha. [1] https://gerrit-review.googlesource.com/c/gerrit/+/262072 Bug: https://crbug.com/12546 Change-Id: I1406c763a3935761247f6771f55e02367f698e6e Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/262352 Reviewed-by: Mike Frysinger Tested-by: David Pursehouse --- hooks/commit-msg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hooks/commit-msg b/hooks/commit-msg index 70d67eaf..92fdc545 100755 --- a/hooks/commit-msg +++ b/hooks/commit-msg @@ -51,7 +51,7 @@ fi # Avoid the --in-place option which only appeared in Git 2.8 # Avoid the --if-exists option which only appeared in Git 2.15 -if ! git -c trailer.ifexists=doNothing interpret-trailers \ +if ! git -c trailer.ifexists=doNothing interpret-trailers --where start \ --trailer "Change-Id: I${random}" < "$1" > "${dest}" ; then echo "cannot insert change-id line in $1" exit 1