am: support --show-current-patch=diff to retrieve .git/rebase-apply/patch

When "git am --show-current-patch" was added in commit 984913a210 ("am:
add --show-current-patch", 2018-02-12), "git am" started recommending it
as a replacement for .git/rebase-merge/patch.  Unfortunately the suggestion
is somewhat misguided; for example, the output of "git am --show-current-patch"
cannot be passed to "git apply" if it is encoded as quoted-printable
or base64.  Add a new mode to "git am --show-current-patch" in order to
straighten the suggestion.

Reported-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Paolo Bonzini
2020-02-20 15:15:19 +01:00
committed by Junio C Hamano
parent f3b4822899
commit aa416b22ea
4 changed files with 24 additions and 8 deletions

View File

@@ -671,11 +671,21 @@ test_expect_success 'am --show-current-patch=raw' '
test_cmp .git/rebase-apply/0001 actual.patch
'
test_expect_success 'am --show-current-patch=diff' '
git am --show-current-patch=diff >actual.patch &&
test_cmp .git/rebase-apply/patch actual.patch
'
test_expect_success 'am accepts repeated --show-current-patch' '
git am --show-current-patch --show-current-patch=raw >actual.patch &&
test_cmp .git/rebase-apply/0001 actual.patch
'
test_expect_success 'am detects incompatible --show-current-patch' '
test_must_fail git am --show-current-patch=raw --show-current-patch=diff &&
test_must_fail git am --show-current-patch --show-current-patch=diff
'
test_expect_success 'am --skip works' '
echo goodbye >expected &&
git am --skip &&