[PATCH] dim: Add add-missing-cc command
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Wed Jul 12 06:17:21 UTC 2017
This commit will take the topmost commit and add all cc's from
get_maintainer.pl, it is useful for adding cc's to an entire patch
series touching multiple drivers, to add the right cc to each one.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
---
dim | 41 +++++++++++++++++++++++++++++++++++++++++
dim.rst | 6 ++++++
2 files changed, 47 insertions(+)
diff --git a/dim b/dim
index 267dbc0313b1..2378ec56e438 100755
--- a/dim
+++ b/dim
@@ -1914,6 +1914,47 @@ function dim_fixes
fi
}
+function dim_add_missing_cc
+{
+ git show | scripts/get_maintainer.pl --email --norolestats --pattern-depth 1 | while read cc; do
+ email="$(echo "$cc" | sed -e 's/.*<//' -e 's/>.*//')"
+ name=''
+
+ if echo "$cc" | grep -q '<'; then
+ name="$(echo ${cc/<*/} | sed -e 's/[[:space:]]*\$//')";
+ fi
+
+ # Don't add main mailing lists
+ if [ "$email" = "dri-devel at lists.freedesktop.org" -o \
+ "$email" = "linux-kernel at vger.kernel.org}" ]; then
+ continue
+ fi
+
+ # Variables from the while loop don't propagate,
+ # print out a 1 on success
+ matches=$(
+ git show -s | grep -i "^ Cc:" | sed 's/^ *[Cc][Cc]: *//' | while read testcc; do
+ testemail="$(echo "$testcc" | sed -e 's/.*<//' -e 's/>.*//')"
+
+ if [ "$testemail" != "$email" ]; then
+ if [ -z "$name" ]; then continue; fi
+
+ testname="$(echo ${testcc/<*/} | sed -e 's/[[:space:]]*\$//' -e 's/^[[:space:]]*//')"
+
+ if [ "$testname" != "$name" ]; then continue; fi
+ fi
+
+ echo 1
+ break
+ done
+ )
+
+ if [ -z "$matches" ]; then
+ $DRY dim_commit_add_tag "Cc: ${cc}"
+ fi
+ done
+}
+
function dim_help
{
manpage=$DIM_PREFIX/maintainer-tools/dim.rst
diff --git a/dim.rst b/dim.rst
index 10572f139130..ae511ca54cbe 100644
--- a/dim.rst
+++ b/dim.rst
@@ -274,6 +274,12 @@ add-link-queued
**add-link** shorthands for *drm-intel-fixes*, *drm-intel-next-fixes*, and
*drm-intel-next-queued* branches respectively.
+add-missing-cc
+--------------
+Adds missing cc's to the topmost commit, can be used with
+*git rebase --exec "dim add-missing-cc"*
+to add cc's for an entire patch series.
+
magic-rebase-resolve
--------------------
Tries to resolve a rebase conflict by first resetting the tree
--
2.11.0
More information about the dri-devel
mailing list