diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-10-18 02:40:49 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-10-18 02:40:49 (GMT) |
commit | bb52def6dafabbfa07ee51562c9291222df55bd9 (patch) | |
tree | 206184ba6fb040d27f48f0cad04c1b5aa87a98d9 /t | |
parent | f1afbb063ff86e40caeaee31146f62c7a3c10c57 (diff) | |
parent | 556895d0c8e95a8c2fb41434a5b9bf453e9367f6 (diff) | |
download | git-bb52def6dafabbfa07ee51562c9291222df55bd9.zip git-bb52def6dafabbfa07ee51562c9291222df55bd9.tar.gz git-bb52def6dafabbfa07ee51562c9291222df55bd9.tar.bz2 |
Merge branch 'jj/stash-reset-only-toplevel'
"git stash save" lost local changes to submodules, which has been
corrected.
* jj/stash-reset-only-toplevel:
stash: avoid recursive hard reset on submodules
Diffstat (limited to 't')
-rwxr-xr-x | t/t3906-stash-submodule.sh | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/t/t3906-stash-submodule.sh b/t/t3906-stash-submodule.sh index d7219d6..b93d1d7 100755 --- a/t/t3906-stash-submodule.sh +++ b/t/t3906-stash-submodule.sh @@ -1,6 +1,6 @@ #!/bin/sh -test_description='stash apply can handle submodules' +test_description='stash can handle submodules' . ./test-lib.sh . "$TEST_DIRECTORY"/lib-submodule-update.sh @@ -21,4 +21,44 @@ KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 test_submodule_switch "git_stash" +setup_basic () { + test_when_finished "rm -rf main sub" && + git init sub && + ( + cd sub && + test_commit sub_file + ) && + git init main && + ( + cd main && + git submodule add ../sub && + test_commit main_file + ) +} + +test_expect_success 'stash push with submodule.recurse=true preserves dirty submodule worktree' ' + setup_basic && + ( + cd main && + git config submodule.recurse true && + echo "x" >main_file.t && + echo "y" >sub/sub_file.t && + git stash push && + test_must_fail git -C sub diff --quiet + ) +' + +test_expect_success 'stash push and pop with submodule.recurse=true preserves dirty submodule worktree' ' + setup_basic && + ( + cd main && + git config submodule.recurse true && + echo "x" >main_file.t && + echo "y" >sub/sub_file.t && + git stash push && + git stash pop && + test_must_fail git -C sub diff --quiet + ) +' + test_done |