builtin-am: handle stray state directory
Should git-am terminate unexpectedly between the point where the state
directory is created, but the "next" and "last" files are not written
yet, a stray state directory will be left behind.
As such, since b141f3c
(am: handle stray $dotest directory, 2013-06-15),
git-am.sh explicitly recognizes such a stray directory, and allows the
user to remove it with am --abort.
Re-implement this feature in builtin/am.c.
Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
df2760a576
commit
6d42ac2941
17
builtin/am.c
17
builtin/am.c
@ -1530,6 +1530,23 @@ int cmd_am(int argc, const char **argv, const char *prefix)
|
||||
struct argv_array paths = ARGV_ARRAY_INIT;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Handle stray state directory in the independent-run case. In
|
||||
* the --rebasing case, it is up to the caller to take care of
|
||||
* stray directories.
|
||||
*/
|
||||
if (file_exists(state.dir) && !state.rebasing) {
|
||||
if (resume == RESUME_ABORT) {
|
||||
am_destroy(&state);
|
||||
am_state_release(&state);
|
||||
return 0;
|
||||
}
|
||||
|
||||
die(_("Stray %s directory found.\n"
|
||||
"Use \"git am --abort\" to remove it."),
|
||||
state.dir);
|
||||
}
|
||||
|
||||
if (resume)
|
||||
die(_("Resolve operation not in progress, we are not resuming."));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user