summaryrefslogtreecommitdiff
path: root/sequencer.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-07-09 22:25:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-07-09 22:25:41 (GMT)
commit88f95e49afe2684da7e8074d7782eba396604bdb (patch)
treeea9b4baa420118c64640dd0d23e403fdc797e613 /sequencer.c
parent44275f5e1bef37304f5a9da65b588e344eb00a72 (diff)
parentd559f502c59658ea1f360fd28d8909894e40a4fe (diff)
downloadgit-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.c11
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)