diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-11-10 18:02:16 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-11-10 18:02:16 +0900 |
commit | 57b530125e022de79f5f0b208bc0a5ee67c18b77 (patch) | |
tree | b6eaafd7b203b0886aa44d3a299823cbd2eeb933 /t | |
parent | Merge branch 'pb/pretty-email-without-domain-part' (diff) | |
parent | stash: handle staged changes in skip-worktree files correctly (diff) | |
download | tgif-57b530125e022de79f5f0b208bc0a5ee67c18b77.tar.xz |
Merge branch 'js/update-index-ignore-removal-for-skip-worktree'
"git stash save" in a working tree that is sparsely checked out
mistakenly removed paths that are outside the area of interest.
* js/update-index-ignore-removal-for-skip-worktree:
stash: handle staged changes in skip-worktree files correctly
update-index: optionally leave skip-worktree entries alone
Diffstat (limited to 't')
-rwxr-xr-x | t/t3903-stash.sh | 11 | ||||
-rwxr-xr-x | t/t7012-skip-worktree-writing.sh | 15 |
2 files changed, 26 insertions, 0 deletions
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index 580bfbdc23..a4da72f0ab 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -1269,4 +1269,15 @@ test_expect_success 'stash apply should succeed with unmodified file' ' git stash apply ' +test_expect_success 'stash handles skip-worktree entries nicely' ' + test_commit A && + echo changed >A.t && + git add A.t && + git update-index --skip-worktree A.t && + rm A.t && + git stash && + + git rev-parse --verify refs/stash:A.t +' + test_done diff --git a/t/t7012-skip-worktree-writing.sh b/t/t7012-skip-worktree-writing.sh index 9d1abe50ef..7476781979 100755 --- a/t/t7012-skip-worktree-writing.sh +++ b/t/t7012-skip-worktree-writing.sh @@ -134,6 +134,21 @@ test_expect_success 'git-clean, dirty case' ' test_i18ncmp expected result ' +test_expect_success '--ignore-skip-worktree-entries leaves worktree alone' ' + test_commit keep-me && + git update-index --skip-worktree keep-me.t && + rm keep-me.t && + + : ignoring the worktree && + git update-index --remove --ignore-skip-worktree-entries keep-me.t && + git diff-index --cached --exit-code HEAD && + + : not ignoring the worktree, a deletion is staged && + git update-index --remove keep-me.t && + test_must_fail git diff-index --cached --exit-code HEAD \ + --diff-filter=D -- keep-me.t +' + #TODO test_expect_failure 'git-apply adds file' false #TODO test_expect_failure 'git-apply updates file' false #TODO test_expect_failure 'git-apply removes file' false |