1
0
mirror of https://github.com/git/git.git synced 2024-11-15 14:14:08 +01:00

sequencer: rectify empty hint in call of require_clean_work_tree()

The canonical way to represent "no error hint" is making it NULL, which
shortcuts the error() call altogether. This fixes the output by removing
the line which said just "error:", which would appear when the worktree
is dirtied while editing the initial rebase todo file. This was
introduced by 97e1873 (rebase -i: rewrite complete_action() in C,
2018-08-28), which did a somewhat inaccurate conversion from shell.

To avoid that such bugs re-appear, test for the condition in
require_clean_work_tree().

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Oswald Buddenhagen 2023-08-24 17:00:46 +02:00 committed by Junio C Hamano
parent fb7d80edca
commit a9b5955e07
2 changed files with 6 additions and 2 deletions

@ -6172,7 +6172,7 @@ int complete_action(struct repository *r, struct replay_opts *opts, unsigned fla
if (checkout_onto(r, opts, onto_name, &oid, orig_head))
goto cleanup;
if (require_clean_work_tree(r, "rebase", "", 1, 1))
if (require_clean_work_tree(r, "rebase", NULL, 1, 1))
goto cleanup;
todo_list_write_total_nr(&new_todo);

@ -2651,8 +2651,12 @@ int require_clean_work_tree(struct repository *r,
}
if (err) {
if (hint)
if (hint) {
if (!*hint)
BUG("empty hint passed to require_clean_work_tree();"
" use NULL instead");
error("%s", hint);
}
if (!gently)
exit(128);
}