diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-07-09 22:25:41 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-07-09 22:25:41 (GMT) |
commit | 88f95e49afe2684da7e8074d7782eba396604bdb (patch) | |
tree | ea9b4baa420118c64640dd0d23e403fdc797e613 /sequencer.c | |
parent | 44275f5e1bef37304f5a9da65b588e344eb00a72 (diff) | |
parent | d559f502c59658ea1f360fd28d8909894e40a4fe (diff) | |
download | git-88f95e49afe2684da7e8074d7782eba396604bdb.zip git-88f95e49afe2684da7e8074d7782eba396604bdb.tar.gz git-88f95e49afe2684da7e8074d7782eba396604bdb.tar.bz2 |
Merge branch 'pw/rebase-abort-clean-rewritten'
"git rebase --abort" used to leave refs/rewritten/ when concluding
"git rebase -r", which has been corrected.
* pw/rebase-abort-clean-rewritten:
rebase --abort/--quit: cleanup refs/rewritten
sequencer: return errors from sequencer_remove_state()
rebase: warn if state directory cannot be removed
rebase: fix a memory leak
Diffstat (limited to 'sequencer.c')
-rw-r--r-- | sequencer.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sequencer.c b/sequencer.c index ab74b6b..4a9b7f1 100644 --- a/sequencer.c +++ b/sequencer.c @@ -279,7 +279,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) { @@ -288,8 +288,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; @@ -305,10 +307,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) |