[RFC PATCH 1/2] t6022: New test checking for unnecessary updates of renamed+modified files
Signed-off-by: Elijah Newren <newren@gmail.com>
---
t/t6022-merge-rename.sh | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/t/t6022-merge-rename.sh b/t/t6022-merge-rename.sh
index 1ed259d..71bfd22 100755
--- a/t/t6022-merge-rename.sh
+++ b/t/t6022-merge-rename.sh
@@ -609,4 +609,36 @@ test_expect_success 'check handling of differently renamed file with D/F conflic
! test -f original
'
+test_expect_success 'setup avoid unnecessary update' '
+ git reset --hard &&
+ git checkout --orphan avoid-unnecessary-update &&
+ git rm -rf . &&
+ git clean -fdqx &&
+
+ printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" >original &&
+ git add -A &&
+ git commit -m "Common commmit" &&
+
+ git mv original rename &&
+ echo 11 >>rename &&
+ git add -u &&
+ git commit -m "Renamed and modified" &&
+
+ git checkout -b other-branch HEAD~1 &&
+ echo "random content" >random-file &&
+ git add -A &&
+ git commit -m "Random, unrelated changes"
+'
+
+test_expect_failure 'avoid unnecessary update' '
+ git checkout -q avoid-unnecessary-update^0 &&
+ orig=$(stat --format="%Y" rename) &&
+ sleep 1 &&
+ git merge other-branch &&
+ new=$(stat --format="%Y" rename) &&
+ echo "Checking whether stat times are same: $orig vs $new" &&
+ test "$orig" == "$new" &&
+ git diff-files --exit-code # Is "rename" clean, or only racily clean?
+'
+
test_done
--
1.7.4.1.23.g4865dd