Commit 12361d02 authored by Junio C Hamano's avatar Junio C Hamano

Merge branch 'jk/stash-disable-renames-internally' into maint

When diff.renames configuration is on (and with Git 2.9 and later,
it is enabled by default, which made it worse), "git stash"
misbehaved if a file is removed and another file with a very
similar content is added.

* jk/stash-disable-renames-internally:
  stash: prefer plumbing over git-diff
parents 5ce6f51f 9d4e28ea
...@@ -115,7 +115,7 @@ create_stash () { ...@@ -115,7 +115,7 @@ create_stash () {
git read-tree --index-output="$TMPindex" -m $i_tree && git read-tree --index-output="$TMPindex" -m $i_tree &&
GIT_INDEX_FILE="$TMPindex" && GIT_INDEX_FILE="$TMPindex" &&
export GIT_INDEX_FILE && export GIT_INDEX_FILE &&
git diff --name-only -z HEAD -- >"$TMP-stagenames" && git diff-index --name-only -z HEAD -- >"$TMP-stagenames" &&
git update-index -z --add --remove --stdin <"$TMP-stagenames" && git update-index -z --add --remove --stdin <"$TMP-stagenames" &&
git write-tree && git write-tree &&
rm -f "$TMPindex" rm -f "$TMPindex"
......
...@@ -766,4 +766,13 @@ test_expect_success 'stash list --cc shows combined diff' ' ...@@ -766,4 +766,13 @@ test_expect_success 'stash list --cc shows combined diff' '
test_cmp expect actual test_cmp expect actual
' '
test_expect_success 'stash is not confused by partial renames' '
mv file renamed &&
git add renamed &&
git stash &&
git stash apply &&
test_path_is_file renamed &&
test_path_is_missing file
'
test_done test_done
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment