From 556895d0c8e95a8c2fb41434a5b9bf453e9367f6 Mon Sep 17 00:00:00 2001 From: Jakob Jarmar Date: Sat, 12 Oct 2019 17:38:29 +0200 Subject: stash: avoid recursive hard reset on submodules git stash push does not recursively stash submodules, but if submodule.recurse is set, it may recursively reset --hard them. Having only the destructive action recurse is likely to be surprising behaviour, and unlikely to be desirable, so the easiest fix should be to ensure that the call to git reset --hard never recurses into submodules. This matches the behavior of check_changes_tracked_files, which ignores submodules. Signed-off-by: Jakob Jarmar Signed-off-by: Junio C Hamano --- builtin/stash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'builtin') diff --git a/builtin/stash.c b/builtin/stash.c index b5a301f24d..c986c258f2 100644 --- a/builtin/stash.c +++ b/builtin/stash.c @@ -1383,7 +1383,7 @@ static int do_push_stash(const struct pathspec *ps, const char *stash_msg, int q struct child_process cp = CHILD_PROCESS_INIT; cp.git_cmd = 1; argv_array_pushl(&cp.args, "reset", "--hard", "-q", - NULL); + "--no-recurse-submodules", NULL); if (run_command(&cp)) { ret = -1; goto done; -- cgit v1.3