diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-03-10 15:20:59 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-03-10 15:20:59 -0300 |
commit | 1254c4a78ff6728e02609f72002c87783b1a610e (patch) | |
tree | f2bc3cb5d5fdef8bb45099d34b4c9de0d707902d | |
parent | 7b1dd4f2f9eabe19369f76fa871d6978eba4c79d (diff) | |
download | mediapointer-dvb-s2-1254c4a78ff6728e02609f72002c87783b1a610e.tar.gz mediapointer-dvb-s2-1254c4a78ff6728e02609f72002c87783b1a610e.tar.bz2 |
Some fixes and improvements at mailimport
From: Mauro Carvalho Chehab <mchehab@infradead.org>
hg mq were offering some troubles, because it seems to be
also updated at master site. So, now, default is not to use it.
Several validations added.
Also improved output log by separating subject from from: line.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rwxr-xr-x | mailimport | 80 | ||||
-rwxr-xr-x | v4l/scripts/hghead.pl | 6 |
2 files changed, 54 insertions, 32 deletions
diff --git a/mailimport b/mailimport index f1a64af35..b563eecd9 100755 --- a/mailimport +++ b/mailimport @@ -10,7 +10,12 @@ #2) hg mailqueue. It is easier to manage patches using mq, allowing to work with # the patches before applying to the tree. +#uncomment to use mq +#usemq=1 + +#uncomment to stop at the first error while testing a patch with --dry-run #exitonerror=1 + head=v4l/scripts/hghead.pl if [ "$1" == "" ]; then @@ -68,36 +73,53 @@ apply_patch () { fi done -# hg qnew doesn't support specifying a date -# date="`perl -ne '{ if ( s/^# Date: //) { print; } }' $TMP2`" -# echo "Patch date is $date" -# patch -s -t -p1 -l -N -d linux -i ../$next -# cd linux -# hg addremove `diffstat -p1 -l $next` -# cd .. - - name=`cat $next | perl -ne ' - if (s/Subject:\s+(.*)/$1/) { - m/\s*(.*)\s*\n/; - $_="$1"; - - tr/[A-Z]/[a-z]/; - s/[^a-z0-9]/_/g; - s/_+$//; - s/_+/_/g; - s/^v4l_dvb_\d+[a-z]*_//g; - - printf "%s.patch",$_; - exit; - }'` - - cat $next| grep -v "^#" >$TMPDIR/$name - - echo hg -m "`cat $TMP2|grep -v "^#"`" qnew $name - hg qnew -m "`cat $TMP2|grep -v "^#"`" $name - patch -s -t -p1 -l -N -d $pdir -i $next make whitespace - hg qrefresh + + committer=`grep "Committer:" $TMP2|sed s/"#Committer: "//` + + if [ "$usemq" != "" ]; then + name=`cat $next | perl -ne ' + if (s/Subject:\s+(.*)/$1/) { + m/\s*(.*)\s*\n/; + $_="$1"; + + tr/[A-Z]/[a-z]/; + s/[^a-z0-9]/_/g; + s/_+$//; + s/_+/_/g; + s/^v4l_dvb_\d+[a-z]*_//g; + + printf "%s.patch",$_; + exit; + }'` + + cat $next| grep -v "^#" >$TMPDIR/$name + + echo hg -m "`cat $TMP2|grep -v "^#"`" qnew $name + hg qnew -m "`cat $TMP2|grep -v "^#"`" $name + hg qrefresh + else + patch -s -t -p1 -l -N -d $pdir -i $next + if [ "$?" != "0" ]; then + echo "*** ERROR at: patch -s -t -p1 -l -N -d $pdir -i $next" + exit + fi + cur=`pwd` + cd $pdir + hg addremove `diffstat -p1 -l $next` + if [ "$?" != "0" ]; then + echo "*** ERROR at hg addremove" + exit + fi + # Commit the changed files + hg commit -u "$committer" -m "`cat $TMP2|grep -v "^#"`" `diffstat -p1 -l $next` + if [ "$?" != "0" ]; then + echo "*** ERROR at hg commit" + cd $cur + exit + fi + cd $cur + fi } echo git-mailsplit $MBOX $DIR diff --git a/v4l/scripts/hghead.pl b/v4l/scripts/hghead.pl index 5c5e63f1f..ddaef0767 100755 --- a/v4l/scripts/hghead.pl +++ b/v4l/scripts/hghead.pl @@ -66,7 +66,7 @@ while ($line = <IN>) { die; } - if ($line =~ m/^Subject:\s*(.*)\n/) { + if ($line =~ m/^Subject:\s*(.*\n)/) { $subject=$1; next; } @@ -100,7 +100,7 @@ while ($line = <IN>) { next; } - if ($line =~ m|^(V4L\/DVB\s*\(.+\)\s*:.*)\n|) { + if ($line =~ m|^(V4L\/DVB\s*\(.+\)\s*:.*\n)|) { $subject=$1; $line="\n"; } @@ -147,6 +147,6 @@ $body=~s/\n+$//; $body=~s/^\n+$//; # First from is used by hg to recognize commiter name -print "From: $maintainer_name <$maintainer_email>\n"; +print "#Committer: $maintainer_name <$maintainer_email>\n"; print "$subject\n$from\n$body\n\n$signed"; |