Hello Michal-
Here is the second version of this script taking your feedback. I think
it works pretty well now. Let me know what you think.
Thanks,
Brandon
---
Add relevant headers for patches pulled from git
Adds a Git-commit: tag using the From header
Adds a Patch-mainline: tag if <kernel path> is given
a useful tree name can be provided in <kernel name>
otherwise basename <kernel path> will be used
example usage
-------------
$0 NULL-pointer-fix.patch
$0 NULL-pointer-fix.patch ~/kernel/linux-2.6
$0 NULL-pointer-fix.patch ~/kernel/linux-2.6 pci 2.6
Signed-off-by: Brandon Philips
---
scripts/patch-tags-from-git | 82 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 82 insertions(+), 0 deletions(-)
create mode 100755 scripts/patch-tags-from-git
diff --git a/scripts/patch-tags-from-git b/scripts/patch-tags-from-git
new file mode 100755
index 0000000..42b9ce6
--- /dev/null
+++ b/scripts/patch-tags-from-git
@@ -0,0 +1,82 @@
+#!/bin/bash
+# Add suse Kernel repo headers to a patch created using git-format-patch
+#
+# Brandon Philips
+
+PATH=$(dirname $0):$PATH
+
+if [ $# -lt 1 ]; then
+ echo "usage: $0 <filename> <kernel path> <kernel name>"
+ echo "Add relevant headers for patches pulled from git"
+ echo ""
+ echo "Adds a Git-commit: tag using the From header"
+ echo ""
+ echo "Adds a Patch-mainline: tag if <kernel path> is given"
+ echo " a useful tree name can be provided in <kernel name>"
+ echo " otherwise basename <kernel path> will be used"
+ echo ""
+ echo "example usage"
+ echo "-------------"
+ echo "$0 NULL-pointer-fix.patch"
+ echo "$0 NULL-pointer-fix.patch ~/kernel/linux-2.6"
+ echo "$0 NULL-pointer-fix.patch ~/kernel/linux-2.6 pci 2.6"
+
+ exit 1
+fi
+
+FILE=$1
+shift
+
+if [ ! -f $FILE ]; then
+ echo "No such file $1"
+ exit 2
+fi
+
+commit=$(head -n1 $FILE | sed -n "s%From\s\([0-9a-f]*\)\s.*%\1%p")
+
+if [ "z$commit" = "z" ]; then
+ echo "$FILE doesn't look like a patch from git"
+else
+ patch-tag -A git-commit="$commit" $FILE
+fi
+
+if [ $# -eq 0 ]; then
+ exit 0
+fi
+
+DIR=$1
+shift
+
+commit=$(patch-tag -p git-commit $FILE | grep -i "git-commit:" | sed "s%.*:\s\(.*\)%\1%g")
+
+if [ "z$commit" = "z" ]; then
+ echo "No git-commit tag in $FILE"
+ exit 3
+fi
+
+export GIT_DIR=$DIR/.git
+
+if [ ! -d $GIT_DIR ]; then
+ echo "No such directory $GIT_DIR"
+ echo 4
+fi
+
+mainline=$(git describe --contains $commit 2> /dev/null)
+
+if [ "z$mainline" = "z" ]; then
+ git show $commit > /dev/null 2> /dev/null
+ if git show $commit > /dev/null 2> /dev/null; then
+ if [ $# -eq 0 ]; then
+ merged=$(basename $DIR)
+ else
+ merged="$@"
+ fi
+ patch-tag -A Patch-mainline="Merged into $merged" $FILE
+ exit 0
+ else
+ echo "$commit from $FILE does not exist in $DIR"
+ exit 5
+ fi
+fi
+
+patch-tag -A Patch-mainline="$mainline" $FILE
--
1.7.3.4
--
To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-kernel+help@opensuse.org