diff options
author | Phillip Wood <phillip.wood@dunelm.org.uk> | 2019-05-14 19:03:48 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-05-15 10:59:33 +0900 |
commit | 37e9ee5cb90db0831d5d58bed82149ba67917d73 (patch) | |
tree | 5febc3d21135075419148e202547afcd361651bf | |
parent | rebase: warn if state directory cannot be removed (diff) | |
download | tgif-37e9ee5cb90db0831d5d58bed82149ba67917d73.tar.xz |
sequencer: return errors from sequencer_remove_state()
If there is an error when removing the state directory then we should
report it. This matches what the non-interactive rebase does.
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | sequencer.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sequencer.c b/sequencer.c index 610b7ece14..258e583156 100644 --- a/sequencer.c +++ b/sequencer.c @@ -274,7 +274,7 @@ static const char *gpg_sign_opt_quoted(struct replay_opts *opts) int sequencer_remove_state(struct replay_opts *opts) { struct strbuf buf = STRBUF_INIT; - int i; + int i, ret = 0; if (is_rebase_i(opts) && strbuf_read_file(&buf, rebase_path_refs_to_delete(), 0) > 0) { @@ -283,8 +283,10 @@ int sequencer_remove_state(struct replay_opts *opts) char *eol = strchr(p, '\n'); if (eol) *eol = '\0'; - if (delete_ref("(rebase -i) cleanup", p, NULL, 0) < 0) + if (delete_ref("(rebase -i) cleanup", p, NULL, 0) < 0) { warning(_("could not delete '%s'"), p); + ret = -1; + } if (!eol) break; p = eol + 1; @@ -300,10 +302,11 @@ int sequencer_remove_state(struct replay_opts *opts) strbuf_reset(&buf); strbuf_addstr(&buf, get_dir(opts)); - remove_dir_recursively(&buf, 0); + if (remove_dir_recursively(&buf, 0)) + ret = error(_("could not remove '%s'"), buf.buf); strbuf_release(&buf); - return 0; + return ret; } static const char *action_name(const struct replay_opts *opts) |