[Intel-gfx] [maintainer-tools PATCH] dim: append commit message tags in git, not in files

Jani Nikula jani.nikula at intel.com
Thu Oct 29 06:58:34 PDT 2015


Email is hard. Let that sink in.

The message piped to dim may have, among other things, base64 encoding,
and using sed to modify the commit message directly on the input falls
apart. This is also true for messages sent using git-send-email. Let
'git am' handle the hard part, and modify the commit message after the
patch has been applied.

The same holds for running checkpatch on the email message; it's
doomed. We'll leave that for later.

Signed-off-by: Jani Nikula <jani.nikula at intel.com>
---
 dim | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/dim b/dim
index cdb48b9f8976..db92c57d82aa 100755
--- a/dim
+++ b/dim
@@ -172,11 +172,15 @@ if message_id is not None:
 EOF
 }
 
-# inject a new tag to a patch file
-# $1 = file, $2 = tag, $3 = value
-message_add_tag ()
+# append a new tag at the end of the commit message of HEAD
+# $1 = tag, $2 = value
+commit_add_tag ()
 {
-	sed -ie "/^---$/ i\\$2: $3" $1
+	# the first sed deletes all trailing blank lines at the end
+	git log -1 --pretty=%B | \
+		sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' | \
+		sed "\$a$1: $2" | \
+		git commit --amend -F-
 }
 
 function update_linux_next
@@ -370,13 +374,15 @@ function dim_apply
 	cat > $file
 
 	local message_id=$(message_get_id $file)
-	if [ -n $message_id ]; then
-		message_add_tag $file "Link" "http://patchwork.freedesktop.org/patch/msgid/$message_id"
-	fi
 
 	dim_shell_checkpatch "cat $file"
 
 	cat $file | git am -3 "$@"
+
+	if [ -n $message_id ]; then
+		commit_add_tag "Link" "http://patchwork.freedesktop.org/patch/msgid/$message_id"
+	fi
+
 	git commit --amend &
 }
 
-- 
2.1.4



More information about the Intel-gfx mailing list