[dpdk-dev] [PATCH 3/3] scripts: check headline of drivers commits

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Jul 6 12:38:50 CEST 2016


From: Nelio Laranjeiro <nelio.laranjeiro at 6wind.com>

A driver patch under net should start with "net/<driver name>" or if
a patch touch multiple drivers, it should only start with "net:".
The same apply for crypto.
A patch touching all drivers (net + crypto) should start with "drivers:".

Longer prefixes like "net/mlx:" (for mlx4/mlx5) or "net/e1000/base:" are
handled by not checking the colon.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro at 6wind.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
---
 scripts/check-git-log.sh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/scripts/check-git-log.sh b/scripts/check-git-log.sh
index 833aa39..3f3cf19 100755
--- a/scripts/check-git-log.sh
+++ b/scripts/check-git-log.sh
@@ -70,6 +70,23 @@ bad=$(echo "$headlines" | grep --color=always \
 	| sed 's,^,\t,')
 [ -z "$bad" ] || printf "Wrong headline format:\n$bad\n"
 
+# check headline prefix when touching only drivers/, e.g. net/<driver name>
+bad=$(for commit in $commits ; do
+	headline=$(git log --format='%s' -1 $commit)
+	files=$(git diff-tree --no-commit-id --name-only -r $commit)
+	[ -z "$(echo "$files" | grep -v '^drivers/')" ] || continue
+	driversgrp=$(echo "$files" | cut -d "/" -f 2 | sort -u)
+	drivers=$(echo "$files" | cut -d "/" -f 2,3 | sort -u)
+	if [ $(echo "$driversgrp" | wc -l) -gt 1 ] ; then
+		bad=$(echo "$headline" | grep -v '^drivers:')
+	elif [ $(echo "$drivers" | wc -l) -gt 1 ] ; then
+		bad=$(echo "$headline" | grep -v "^$driversgrp")
+	else
+		bad=$(echo "$headline" | grep -v "^$drivers")
+	fi
+done | sed 's,^,\t,')
+[ -z "$bad" ] || printf "Wrong headline prefix:\n$bad\n"
+
 # check headline label for common typos
 bad=$(echo "$headlines" | grep --color=always \
 	-e '^example[:/]' \
-- 
2.7.0



More information about the dev mailing list