rebase --autostash: fix issue with dirty submodules

Since we cannot stash dirty submodules, there is no use in requiring
them to be clean (or stash them when they are not).

This brings the built-in rebase in line with the previous, scripted
version, which also did not care about dirty submodules (but it was
admittedly not very easy to figure that out).

This fixes https://github.com/git-for-windows/git/issues/1820

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2018-10-23 12:57:17 -07:00 committed by Junio C Hamano
parent 97bd162ca2
commit ffae8b2f90
2 changed files with 2 additions and 2 deletions

View File

@ -1350,7 +1350,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
update_index_if_able(&the_index, &lock_file);
rollback_lock_file(&lock_file);
if (has_unstaged_changes(0) || has_uncommitted_changes(0)) {
if (has_unstaged_changes(1) || has_uncommitted_changes(1)) {
const char *autostash =
state_dir_path("autostash", &options);
struct child_process stash = CHILD_PROCESS_INIT;

View File

@ -351,7 +351,7 @@ test_expect_success 'autostash is saved on editor failure with conflict' '
test_cmp expected file0
'
test_expect_failure 'autostash with dirty submodules' '
test_expect_success 'autostash with dirty submodules' '
test_when_finished "git reset --hard && git checkout master" &&
git checkout -b with-submodule &&
git submodule add ./ sub &&