mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
Merge branch 'tr/maint-mailinfo'
* tr/maint-mailinfo: mailinfo: with -b, keep space after [foo] am: learn passing -b to mailinfo Conflicts: git-am.sh
This commit is contained in:
commit
bff64a9cda
|
@ -40,6 +40,9 @@ OPTIONS
|
|||
--keep::
|
||||
Pass `-k` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
|
||||
|
||||
--keep-non-patch::
|
||||
Pass `-b` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
|
||||
|
||||
--keep-cr::
|
||||
--no-keep-cr::
|
||||
With `--keep-cr`, call 'git mailsplit' (see linkgit:git-mailsplit[1])
|
||||
|
|
|
@ -250,8 +250,17 @@ static void cleanup_subject(struct strbuf *subject)
|
|||
(7 <= remove &&
|
||||
memmem(subject->buf + at, remove, "PATCH", 5)))
|
||||
strbuf_remove(subject, at, remove);
|
||||
else
|
||||
else {
|
||||
at += remove;
|
||||
/*
|
||||
* If the input had a space after the ], keep
|
||||
* it. We don't bother with finding the end of
|
||||
* the space, since we later normalize it
|
||||
* anyway.
|
||||
*/
|
||||
if (isspace(subject->buf[at]))
|
||||
at += 1;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
|
20
git-am.sh
20
git-am.sh
|
@ -15,6 +15,7 @@ q,quiet be quiet
|
|||
s,signoff add a Signed-off-by line to the commit message
|
||||
u,utf8 recode into utf8 (default)
|
||||
k,keep pass -k flag to git-mailinfo
|
||||
keep-non-patch pass -b flag to git-mailinfo
|
||||
keep-cr pass --keep-cr flag to git-mailsplit for mbox format
|
||||
no-keep-cr do not pass --keep-cr flag to git-mailsplit independent of am.keepcr
|
||||
c,scissors strip everything before a scissors line
|
||||
|
@ -387,6 +388,8 @@ do
|
|||
utf8= ;;
|
||||
-k|--keep)
|
||||
keep=t ;;
|
||||
--keep-non-patch)
|
||||
keep=b ;;
|
||||
-c|--scissors)
|
||||
scissors=t ;;
|
||||
--no-scissors)
|
||||
|
@ -565,16 +568,25 @@ case "$resolved" in
|
|||
fi
|
||||
esac
|
||||
|
||||
# Now, decide what command line options we will give to the git
|
||||
# commands we invoke, based on the result of parsing command line
|
||||
# options and previous invocation state stored in $dotest/ files.
|
||||
|
||||
if test "$(cat "$dotest/utf8")" = t
|
||||
then
|
||||
utf8=-u
|
||||
else
|
||||
utf8=-n
|
||||
fi
|
||||
if test "$(cat "$dotest/keep")" = t
|
||||
then
|
||||
keep=-k
|
||||
fi
|
||||
keep=$(cat "$dotest/keep")
|
||||
case "$keep" in
|
||||
t)
|
||||
keep=-k ;;
|
||||
b)
|
||||
keep=-b ;;
|
||||
*)
|
||||
keep= ;;
|
||||
esac
|
||||
case "$(cat "$dotest/scissors")" in
|
||||
t)
|
||||
scissors=--scissors ;;
|
||||
|
|
|
@ -237,7 +237,7 @@ test_expect_success 'am stays in branch' '
|
|||
|
||||
test_expect_success 'am --signoff does not add Signed-off-by: line if already there' '
|
||||
git format-patch --stdout HEAD^ >patch3 &&
|
||||
sed -e "/^Subject/ s,\[PATCH,Re: Re: Re: & 1/5 v2," patch3 >patch4 &&
|
||||
sed -e "/^Subject/ s,\[PATCH,Re: Re: Re: & 1/5 v2] [foo," patch3 >patch4 &&
|
||||
rm -fr .git/rebase-apply &&
|
||||
git reset --hard &&
|
||||
git checkout HEAD^ &&
|
||||
|
@ -259,7 +259,17 @@ test_expect_success 'am --keep really keeps the subject' '
|
|||
git am --keep patch4 &&
|
||||
! test -d .git/rebase-apply &&
|
||||
git cat-file commit HEAD >actual &&
|
||||
grep "Re: Re: Re: \[PATCH 1/5 v2\] third" actual
|
||||
grep "Re: Re: Re: \[PATCH 1/5 v2\] \[foo\] third" actual
|
||||
'
|
||||
|
||||
test_expect_success 'am --keep-non-patch really keeps the non-patch part' '
|
||||
rm -fr .git/rebase-apply &&
|
||||
git reset --hard &&
|
||||
git checkout HEAD^ &&
|
||||
git am --keep-non-patch patch4 &&
|
||||
! test -d .git/rebase-apply &&
|
||||
git cat-file commit HEAD >actual &&
|
||||
grep "^\[foo\] third" actual
|
||||
'
|
||||
|
||||
test_expect_success 'am -3 falls back to 3-way merge' '
|
||||
|
|
Loading…
Reference in a new issue