summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-12-22 12:16:29 -0800
committerJunio C Hamano <gitster@pobox.com>2014-12-22 12:16:30 -0800
commit447c39a9b25e222a96711f7736078e4f33001388 (patch)
treeab7bebf74d7db8ef26222e88031c296f3e849f04 /t
parentbef111d0a5e4b5dcac07f92b0fc918bb31184066 (diff)
parentc5326bd62b7e168ba1339dacb7ee812d0fe98c7c (diff)
downloadgit-447c39a9b25e222a96711f7736078e4f33001388.tar.gz
Merge branch 'jk/checkout-from-tree' into maint
"git checkout $treeish $path", when $path in the index and the working tree already matched what is in $treeish at the $path, still overwrote the $path unnecessarily. * jk/checkout-from-tree: checkout $tree: do not throw away unchanged index entries
Diffstat (limited to 't')
-rwxr-xr-xt/t2022-checkout-paths.sh17
1 files changed, 17 insertions, 0 deletions
diff --git a/t/t2022-checkout-paths.sh b/t/t2022-checkout-paths.sh
index 8e3545d868..f46d0499bc 100755
--- a/t/t2022-checkout-paths.sh
+++ b/t/t2022-checkout-paths.sh
@@ -61,4 +61,21 @@ test_expect_success 'do not touch unmerged entries matching $path but not in $tr
test_cmp expect.next0 actual.next0
'
+test_expect_success 'do not touch files that are already up-to-date' '
+ git reset --hard &&
+ echo one >file1 &&
+ echo two >file2 &&
+ git add file1 file2 &&
+ git commit -m base &&
+ echo modified >file1 &&
+ test-chmtime =1000000000 file2 &&
+ git update-index -q --refresh &&
+ git checkout HEAD -- file1 file2 &&
+ echo one >expect &&
+ test_cmp expect file1 &&
+ echo "1000000000 file2" >expect &&
+ test-chmtime -v +0 file2 >actual &&
+ test_cmp expect actual
+'
+
test_done