Linus Torvalds
20 years ago
4 changed files with 63 additions and 5 deletions
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh |
||||
## |
||||
## applypatch takes four file arguments, and uses those to |
||||
## apply the unpacked patch (surprise surprise) that they |
||||
## represent to the current tree. |
||||
## |
||||
## The arguments are: |
||||
## $1 - file with commit message |
||||
## $2 - file with the actual patch |
||||
## $3 - file with list of filenames the patch touches |
||||
## $4 - "info" file with Author, email and subject |
||||
## |
||||
MSGFILE=$1 |
||||
PATCHFILE=$2 |
||||
FILES=$3 |
||||
INFO=$4 |
||||
export AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' .dotest/info)" |
||||
export AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' .dotest/info)" |
||||
export SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' .dotest/info)" |
||||
|
||||
echo |
||||
echo Applying $SUBJECT |
||||
echo |
||||
|
||||
(echo "[PATCH] $SUBJECT" ; echo ; cat $MSGFILE ) > .dotest/final-commit |
||||
|
||||
check-files $(cat $FILES) || exit 1 |
||||
patch -u --no-backup-if-mismatch -f -p1 --fuzz=0 --input=$PATCHFILE || exit 1 |
||||
update-cache --add --remove $(cat $FILES) || exit 1 |
||||
tree=$(write-tree) || exit 1 |
||||
echo Wrote tree $tree |
||||
commit=$(commit-tree $tree -p $(cat .git/HEAD) < .dotest/final-commit) || exit 1 |
||||
echo Committed: $commit |
||||
echo $commit > .git/HEAD |
||||
|
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh |
||||
## |
||||
## "dotest" is my stupid name for my patch-application script, which |
||||
## I never got around to renaming after I tested it. We're now on the |
||||
## second generation of scripts, still called "dotest". |
||||
## |
||||
## You give it a mbox-format collection of emails, and it will try to |
||||
## apply them to the kernel using "applypatch" |
||||
## |
||||
rm -rf .dotest |
||||
mkdir .dotest |
||||
mailsplit $1 .dotest || exit 1 |
||||
for i in .dotest/* |
||||
do |
||||
mailinfo .dotest/msg .dotest/patch .dotest/file < $i > .dotest/info || exit 1 |
||||
applypatch .dotest/msg .dotest/patch .dotest/file .dotest/info || exit 1 |
||||
done |
Loading…
Reference in new issue