summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 9577e7e)
raw | patch | inline | side by side (parent: 9577e7e)
author | Junio C Hamano <junkio@cox.net> | |
Wed, 17 Aug 2005 05:18:27 +0000 (22:18 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Wed, 17 Aug 2005 05:22:35 +0000 (22:22 -0700) |
This corresponds to the -k flag to git format-patch --mbox
option. The option should probably not be used when applying a
real e-mail patch, but is needed when format-patch and applymbox
pair is used for cherrypicking.
Signed-off-by: Junio C Hamano <junkio@cox.net>
option. The option should probably not be used when applying a
real e-mail patch, but is needed when format-patch and applymbox
pair is used for cherrypicking.
Signed-off-by: Junio C Hamano <junkio@cox.net>
tools/git-applymbox | patch | blob | history | |
tools/git-applypatch | patch | blob | history | |
tools/mailinfo.c | patch | blob | history |
diff --git a/tools/git-applymbox b/tools/git-applymbox
index e44f5d7970deda7e28566c526be558c5a0c6cc3b..889d4c1743ccdfcf8ad0be96a58eb8b60c03ccdc 100755 (executable)
--- a/tools/git-applymbox
+++ b/tools/git-applymbox
## You give it a mbox-format collection of emails, and it will try to
## apply them to the kernel using "applypatch"
##
-## applymbox [ -q ] (-c .dotest/msg-number | mail_archive) [Signoff_file]"
+## applymbox [ -k ] [ -q ] (-c .dotest/msg-number | mail_archive) [Signoff_file]"
##
## The patch application may fail in the middle. In which case:
## (1) look at .dotest/patch and fix it up to apply
## use a Signoff_file, because applypatch wants to append the sign-off
## message to msg-clean every time it is run.
-query_apply= continue= resume=t
+keep_subject= query_apply= continue= resume=t
while case "$#" in 0) break ;; esac
do
case "$1" in
+ -k) keep_subject=-k ;;
-q) query_apply=t ;;
-c) continue="$2"; resume=f; shift ;;
-*) usage ;;
case "$query_apply" in
t) touch .dotest/.query_apply
esac
+case "$keep_subject" in
+-k) : >.dotest/.keep_subject
+esac
signoff="$1"
set x .dotest/0*
f,$i) resume=t;;
f,*) continue;;
*)
- git-mailinfo .dotest/msg .dotest/patch <$i >.dotest/info || exit 1
+ git-mailinfo $keep_subject \
+ .dotest/msg .dotest/patch <$i >.dotest/info || exit 1
git-stripspace < .dotest/msg > .dotest/msg-clean
;;
esac
diff --git a/tools/git-applypatch b/tools/git-applypatch
index 5a3a44b0e6a4b725bd4771d57aa9a76f100e94ed..406fef34f2cf140893787b16178cd65cbe6f016d 100755 (executable)
--- a/tools/git-applypatch
+++ b/tools/git-applypatch
## If this file exists, we ask before applying
##
query_apply=.dotest/.query_apply
+keep_subject=.dotest/.keep_subject
MSGFILE=$1
PATCHFILE=$2
INFO=$3
if [ -n "$signoff" -a -f "$signoff" ]; then
cat $signoff >> $MSGFILE
fi
+patch_header=
+test -f "$keep_subject" || patch_header='[PATCH] '
-(echo "[PATCH] $SUBJECT" ; if [ -s $MSGFILE ]; then echo ; cat $MSGFILE; fi ) > $final
+(echo "$patch_header$SUBJECT" ; if [ -s $MSGFILE ]; then echo ; cat $MSGFILE; fi ) > $final
f=0
[ -f $query_apply ] || f=1
diff --git a/tools/mailinfo.c b/tools/mailinfo.c
index fb2ea2b70bf56c59da34bd90158b929b8ee56caa..a36123a1f5bc27e90debcf19d5348937c738d2f2 100644 (file)
--- a/tools/mailinfo.c
+++ b/tools/mailinfo.c
static FILE *cmitmsg, *patchfile;
+static int keep_subject = 0;
static char line[1000];
static char date[1000];
static char name[1000];
static char * cleanup_subject(char *subject)
{
+ if (keep_subject)
+ return subject;
for (;;) {
char *p;
int len, remove;
exit(1);
}
+static const char mailinfo_usage[] =
+"git-mailinfo [-k] msg patch <mail >info";
int main(int argc, char ** argv)
{
+ while (1 < argc && argv[1][0] == '-') {
+ if (!strcmp(argv[1], "-k"))
+ keep_subject = 1;
+ else {
+ fprintf(stderr, "usage: %s\n", mailinfo_usage);
+ exit(1);
+ }
+ argc--; argv++;
+ }
+
if (argc != 3)
usage();
cmitmsg = fopen(argv[1], "w");