git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/2] rebase --autostash: fix issue with dirty submodules

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Oct 23, 2018, 19:57 UTC
Message-ID
<ee4b715284c95698fd1b68dc4b1a2d38056df56b.1540324633.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.56.git.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>

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>
---
 builtin/rebase.c            | 2 +-
 t/t3420-rebase-autostash.sh | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin/rebase.c b/builtin/rebase.c
index 09f55bfb9..1dd24301f 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -1349,7 +1349,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;
diff --git a/t/t3420-rebase-autostash.sh b/t/t3420-rebase-autostash.sh
index 7eb9f9041..f355c6825 100755
--- a/t/t3420-rebase-autostash.sh
+++ b/t/t3420-rebase-autostash.sh
@@ -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 &&
-- 
gitgitgadget
Previous: Johannes Schindelin via GitGitGadgetNext: Ævar Arnfjörð Bjarmason
Message 3 of 6 in “Demonstrate and fix a rebase --autostash bug with dirty submodules”
  1. 0/2 Demonstrate and fix a rebase --autostash bug with dirty submodulesJohannes Schindelin via GitGitGadget, Oct 23, 2018
  2. 1/2 rebase --autostash: demonstrate a problem with dirty submodulesJohannes Schindelin via GitGitGadget, Oct 23, 2018
  3. 2/2 rebase --autostash: fix issue with dirty submodulesJohannes Schindelin via GitGitGadget, Oct 23, 2018
  4. Regression in rebase-in-C with rebase.autoStash=trueÆvar Arnfjörð Bjarmason, Nov 6, 2018
  5. Jeff KingNov 6, 2018
  6. Johannes SchindelinNov 7, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.