Browse Source

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>
maint
Johannes Schindelin 6 years ago committed by Junio C Hamano
parent
commit
ffae8b2f90
  1. 2
      builtin/rebase.c
  2. 2
      t/t3420-rebase-autostash.sh

2
builtin/rebase.c

@ -1350,7 +1350,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix) @@ -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;

2
t/t3420-rebase-autostash.sh

@ -351,7 +351,7 @@ test_expect_success 'autostash is saved on editor failure with conflict' ' @@ -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 &&

Loading…
Cancel
Save