am: indicate where a failed patch is to be found

If "git am" fails to apply something, the end user may need to know
where to find the patch that failed to apply, so that the user can
do other things (e.g. trying "GNU patch" on it, running "diffstat"
to see what it tried to change, etc.)  The input to "am" may have
contained more than one patch, or the message may have been MIME
encoded, and knowing what the user fed to "am" does not help very
much for this purpose.

Also introduce advice.amworkdir configuration to allow people who
learned where to look to squelch this message.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Paul Gortmaker 2012-07-13 11:51:30 -04:00 committed by Junio C Hamano
parent d0f1ea6003
commit 14bf2d58bc
2 changed files with 8 additions and 0 deletions

View file

@ -143,6 +143,9 @@ advice.*::
Advice shown when you used linkgit:git-checkout[1] to
move to the detach HEAD state, to instruct how to create
a local branch after the fact.
amWorkDir::
Advice that shows the location of the patch file when
linkgit:git-am[1] fails to apply it.
--
core.fileMode::

View file

@ -834,6 +834,11 @@ did you forget to use 'git add'?"
if test $apply_status != 0
then
eval_gettextln 'Patch failed at $msgnum $FIRSTLINE'
if test "$(git config --bool advice.amworkdir)" != false
then
eval_gettextln "The copy of the patch that failed is found in:
$dotest/patch"
fi
stop_here_user_resolve $this
fi