Skip to content

Commit

Permalink
rebase: help user when dying with preserve-merges`
Browse files Browse the repository at this point in the history
Git will die if a "rebase --preserve-merges" is in progress.
Users cannot --quit, --abort or --continue the rebase.

This sceario can occur if the user updates their Git, or switches
to another newer version, after starting a preserve-merges rebase,
commonly via the pull setting.

One trigger is an unexpectedly difficult to resolve conflict, as
reported on the `git-users` group.
(https://groups.google.com/g/git-for-windows/c/3jMWbBlXXHM)

Tell the user the cause, i.e. the existence of the directory.
The problem must be resolved manually, `git rebase --<option>`
commands will die, or the user must downgrade. Also, note that
the deleted options are no longer shown in the documentation.

Signed-off-by: Philip Oakley <[email protected]>
  • Loading branch information
PhilipOakley committed Feb 21, 2022
1 parent bfc55a2 commit 99be4d8
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion builtin/rebase.c
Original file line number Diff line number Diff line change
Expand Up @@ -1155,7 +1155,9 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
strbuf_reset(&buf);
strbuf_addf(&buf, "%s/rewritten", merge_dir());
if (is_directory(buf.buf)) {
die("`rebase -p` is no longer supported");
die("`rebase --preserve-merges` (-p) is no longer supported.\n"
"You still have a `.git/rebase-merge/rewritten` directory, \n"
"indicating a `rebase preserve-merge` is still in progress.\n");
} else {
strbuf_reset(&buf);
strbuf_addf(&buf, "%s/interactive", merge_dir());
Expand Down

0 comments on commit 99be4d8

Please sign in to comment.