Merge branch 'ns/am-raw-email'
* ns/am-raw-email: git-am: print fair error message when format detection fails am: allow individual e-mail files as input
This commit is contained in:
commit
38a9f35d1f
20
git-am.sh
20
git-am.sh
@ -191,6 +191,20 @@ check_patch_format () {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
if test -z "$patch_format" &&
|
||||||
|
test -n "$l1" &&
|
||||||
|
test -n "$l2" &&
|
||||||
|
test -n "$l3"
|
||||||
|
then
|
||||||
|
# This begins with three non-empty lines. Is this a
|
||||||
|
# piece of e-mail a-la RFC2822? Grab all the headers,
|
||||||
|
# discarding the indented remainder of folded lines,
|
||||||
|
# and see if it looks like that they all begin with the
|
||||||
|
# header field names...
|
||||||
|
sed -n -e '/^$/q' -e '/^[ ]/d' -e p "$1" |
|
||||||
|
egrep -v '^[A-Za-z]+(-[A-Za-z]+)*:' >/dev/null ||
|
||||||
|
patch_format=mbox
|
||||||
|
fi
|
||||||
} < "$1" || clean_abort
|
} < "$1" || clean_abort
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +268,11 @@ split_patches () {
|
|||||||
msgnum=
|
msgnum=
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
clean_abort "Patch format $patch_format is not supported."
|
if test -n "$parse_patch" ; then
|
||||||
|
clean_abort "Patch format $patch_format is not supported."
|
||||||
|
else
|
||||||
|
clean_abort "Patch format detection failed."
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
@ -77,6 +77,12 @@ test_expect_success setup '
|
|||||||
git commit -s -F msg &&
|
git commit -s -F msg &&
|
||||||
git tag second &&
|
git tag second &&
|
||||||
git format-patch --stdout first >patch1 &&
|
git format-patch --stdout first >patch1 &&
|
||||||
|
{
|
||||||
|
echo "X-Fake-Field: Line One" &&
|
||||||
|
echo "X-Fake-Field: Line Two" &&
|
||||||
|
echo "X-Fake-Field: Line Three" &&
|
||||||
|
git format-patch --stdout first | sed -e "1d"
|
||||||
|
} > patch1.eml &&
|
||||||
sed -n -e "3,\$p" msg >file &&
|
sed -n -e "3,\$p" msg >file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
test_tick &&
|
test_tick &&
|
||||||
@ -108,6 +114,15 @@ test_expect_success 'am applies patch correctly' '
|
|||||||
test "$(git rev-parse second^)" = "$(git rev-parse HEAD^)"
|
test "$(git rev-parse second^)" = "$(git rev-parse HEAD^)"
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'am applies patch e-mail not in a mbox' '
|
||||||
|
git checkout first &&
|
||||||
|
git am patch1.eml &&
|
||||||
|
! test -d .git/rebase-apply &&
|
||||||
|
test -z "$(git diff second)" &&
|
||||||
|
test "$(git rev-parse second)" = "$(git rev-parse HEAD)" &&
|
||||||
|
test "$(git rev-parse second^)" = "$(git rev-parse HEAD^)"
|
||||||
|
'
|
||||||
|
|
||||||
GIT_AUTHOR_NAME="Another Thor"
|
GIT_AUTHOR_NAME="Another Thor"
|
||||||
GIT_AUTHOR_EMAIL="a.thor@example.com"
|
GIT_AUTHOR_EMAIL="a.thor@example.com"
|
||||||
GIT_COMMITTER_NAME="Co M Miter"
|
GIT_COMMITTER_NAME="Co M Miter"
|
||||||
|
Loading…
Reference in New Issue
Block a user