builtin-am: reject patches when there's a session in progress
Sinced1c5f2a
(Add git-am, applymbox replacement., 2005-10-07), git-am would error out if the user gave it mbox(s) on the command-line, but there was a session in progress. Sincec95b138
(Fix git-am safety checks, 2006-09-15), git-am would detect if the user attempted to feed it a mbox via stdin, by checking if stdin is not a tty and there is no resume command given. Re-implement the above two safety checks. Signed-off-by: Paul Tan <pyokagan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
33388a71d2
commit
8d18550318
15
builtin/am.c
15
builtin/am.c
@ -1148,6 +1148,21 @@ int cmd_am(int argc, const char **argv, const char *prefix)
|
||||
die(_("failed to read the index"));
|
||||
|
||||
if (am_in_progress(&state)) {
|
||||
/*
|
||||
* Catch user error to feed us patches when there is a session
|
||||
* in progress:
|
||||
*
|
||||
* 1. mbox path(s) are provided on the command-line.
|
||||
* 2. stdin is not a tty: the user is trying to feed us a patch
|
||||
* from standard input. This is somewhat unreliable -- stdin
|
||||
* could be /dev/null for example and the caller did not
|
||||
* intend to feed us a patch but wanted to continue
|
||||
* unattended.
|
||||
*/
|
||||
if (argc || (resume == RESUME_FALSE && !isatty(0)))
|
||||
die(_("previous rebase directory %s still exists but mbox given."),
|
||||
state.dir);
|
||||
|
||||
if (resume == RESUME_FALSE)
|
||||
resume = RESUME_APPLY;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user