summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Tan <pyokagan@gmail.com>2015-06-15 19:08:13 +0800
committerJunio C Hamano <gitster@pobox.com>2015-06-15 12:34:31 -0700
commit9f0aa6e65447c719abe8fe739d9f1e40b7335af8 (patch)
treeb83ed9799a46914e03b87de83542c47d1bc7c989
parente9dfe253fd489ea171e0478147aeb6eab91dab75 (diff)
downloadgit-pt/am-foreign.tar.gz
am: teach mercurial patch parser how to read from stdinpt/am-foreign
git-mailsplit, which splits mbox patches, will read the patch from stdin when the filename is "-" or there are no files listed on the command-line. To be consistent with this behavior, teach the mercurial patch parser to read from stdin if the filename is "-" or no files are listed on the command-line. Based-on-patch-by: Chris Packham <judge.packham@gmail.com> Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Paul Tan <pyokagan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-am.sh3
-rwxr-xr-xt/t4150-am.sh10
2 files changed, 12 insertions, 1 deletions
diff --git a/git-am.sh b/git-am.sh
index 5eec11d5f0..f35710cb50 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -327,6 +327,7 @@ split_patches () {
;;
hg)
this=0
+ test 0 -eq "$#" && set -- -
for hg in "$@"
do
this=$(( $this + 1 ))
@@ -353,7 +354,7 @@ split_patches () {
print "\n", $_ ;
$subject = 1;
}
- ' <"$hg" >"$dotest/$msgnum" || clean_abort
+ ' -- "$hg" >"$dotest/$msgnum" || clean_abort
done
echo "$this" >"$dotest/last"
this=
diff --git a/t/t4150-am.sh b/t/t4150-am.sh
index 4beb4b3894..3ebafd9234 100755
--- a/t/t4150-am.sh
+++ b/t/t4150-am.sh
@@ -259,6 +259,16 @@ test_expect_success 'am applies hg patch' '
test_cmp_rev second^ HEAD^
'
+test_expect_success 'am --patch-format=hg applies hg patch' '
+ rm -fr .git/rebase-apply &&
+ git checkout -f first &&
+ git am --patch-format=hg <patch1-hg.eml &&
+ test_path_is_missing .git/rebase-apply &&
+ git diff --exit-code second &&
+ test_cmp_rev second HEAD &&
+ test_cmp_rev second^ HEAD^
+'
+
test_expect_success 'setup: new author and committer' '
GIT_AUTHOR_NAME="Another Thor" &&
GIT_AUTHOR_EMAIL="a.thor@example.com" &&