summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2014-12-05 11:41:33 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2014-12-05 11:41:33 -0800
commitc21df07886bb07a893609ff242e29b1493da1fd8 (patch)
tree7f76a3cc617ee737aac3dbd1e0fc7ad3c3347b68 /t
parentMerge branch 'tq/git-ssh-command' (diff)
parentcheckout $tree: do not throw away unchanged index entries (diff)
downloadtgif-c21df07886bb07a893609ff242e29b1493da1fd8.tar.xz
Merge branch 'jk/checkout-from-tree'
"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