git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4 4/4] Add testcases for the --hide-dir-rename-details diffcore flag.

From
Yann Dirson <ydirson@altern.org>
Date
Oct 3, 2010, 20:42 UTC
Message-ID
<1286138529-6780-5-git-send-email-ydirson@altern.org>
In-Reply-To
<1286138529-6780-4-git-send-email-ydirson@altern.org>
From: Yann Dirson <ydirson@free.fr>
---
 t/t4046-diff-rename-factorize.sh |  107 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 107 insertions(+), 0 deletions(-)
diff --git a/t/t4046-diff-rename-factorize.sh b/t/t4046-diff-rename-factorize.sh
index 51b0b0b..d982658 100755
--- a/t/t4046-diff-rename-factorize.sh
+++ b/t/t4046-diff-rename-factorize.sh
@@ -69,6 +69,18 @@ test_expect_success \
     'validate the output for directory move.' \
     'compare_diff_patch expected current.filtered'
 
+test_expect_success \
+    'git diff-index --hide-dir-rename-details after directory move.' \
+    'git diff-index --hide-dir-rename-details HEAD >current'
+grep -v "^\[DBG\] " <current >current.filtered
+cat >expected <<\EOF
+:040000 040000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 R100	a/	b/
+EOF
+
+test_expect_success \
+    'validate the output for directory move.' \
+    'compare_diff_patch expected current.filtered'
+
 # now test non-100% renames
 
 echo 'Line 16' >> b/path0
@@ -96,6 +108,22 @@ test_expect_success \
     'validate the output for directory move and content changes.' \
     'compare_diff_patch expected current.filtered'
 
+test_expect_success \
+    'git diff-index --hide-dir-rename-details after directory move and content changes.' \
+    'git diff-index --hide-dir-rename-details HEAD >current'
+grep -v "^\[DBG\] " <current >current.filtered
+cat >expected <<\EOF
+:040000 040000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 R100	a/	b/
+:100644 000000 c6971ab9f08a6cd9c89a0f87d94ae347aad6144a 0000000000000000000000000000000000000000 D	a/path3
+:100644 100644 dbde7141d737c8aa0003672c1bc21ded48c6c3b9 dbde7141d737c8aa0003672c1bc21ded48c6c3b9 R100	a/path2	b/2path
+:100644 100644 fdbec444a77953b1bcc899d9fabfa202e5e68f08 4db595d12886f90e36765fc1732c17bccb836663 R093	a/path0	b/path0
+:000000 100644 0000000000000000000000000000000000000000 1ba4650885513e62386fd3e23aeb45beeb67d3bb A	b/path100
+EOF
+
+test_expect_success \
+    'validate the output for directory move and content changes.' \
+    'compare_diff_patch expected current.filtered'
+
 git reset -q --hard
 
 # now test bulk moves that are not directory moves (get consensus before going further ?)
@@ -130,6 +158,18 @@ test_expect_failure \
     'validate the output for bulk rename without full-dir rename.' \
     'compare_diff_patch expected current.filtered'
 
+test_expect_success \
+    'git diff-index --hide-dir-rename-details without full-dir rename.' \
+    'git diff-index --hide-dir-rename-details HEAD >current'
+grep -v "^\[DBG\] " <current >current.filtered
+cat >expected <<\EOF
+:040000 040000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 R100	c/*	a/
+EOF
+
+test_expect_failure \
+    'validate the output for bulk rename without full-dir rename.' \
+    'compare_diff_patch expected current.filtered'
+
 git reset -q --hard
 
 # now test moves to toplevel
@@ -154,6 +194,18 @@ test_expect_failure \
     'validate the output for files bulk-moved to toplevel.' \
     'compare_diff_patch expected current.filtered'
 
+test_expect_success \
+    'git diff-index --hide-dir-rename-details files bulk-moved to toplevel.' \
+    'git diff-index --hide-dir-rename-details HEAD >current'
+grep -v "^\[DBG\] " <current >current.filtered
+cat >expected <<\EOF
+:040000 040000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 R100	c/*	./
+EOF
+
+test_expect_failure \
+    'validate the output for files bulk-moved to toplevel.' \
+    'compare_diff_patch expected current.filtered'
+
 git reset -q --hard
 
 # now test renaming with subdirs (does not take subdirs into account)
@@ -192,6 +244,19 @@ test_expect_failure \
     'validate the output for a move including a subdir.' \
     'compare_diff_patch expected current.filtered'
 
+test_expect_success \
+    'git diff-index --hide-dir-rename-details on a move including a subdir.' \
+    'git diff-index --hide-dir-rename-details HEAD >current'
+grep -v "^\[DBG\] " <current >current.filtered
+cat >expected <<\EOF
+:040000 040000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 R100	a/	b/
+:100644 100644 fdbec444a77953b1bcc899d9fabfa202e5e68f08 00084e5ea68b5ae339b7c4b429e4a70fe25d069b R096	a/c/apath0	b/c/apath0
+EOF
+
+test_expect_failure \
+    'validate the output for a move including a subdir.' \
+    'compare_diff_patch expected current.filtered'
+
 git reset -q --hard
 
 # now check that moving all files but not subdirs is not mistaken for dir move
@@ -217,6 +282,8 @@ test_expect_success \
     'validate the output for a move without a subdir.' \
     'compare_diff_patch expected current.filtered'
 
+# no need to test for --hide-dir-rename-details here
+
 git reset -q --hard
 
 # now check that moving subdirs into one dir and files into another is not mistaken for dir move
@@ -247,6 +314,22 @@ test_expect_failure \
     'validate the output for a split of subdir and files into different places.' \
     'compare_diff_patch expected current.filtered'
 
+test_expect_success \
+    'git diff-index --hide-dir-rename-details on a split of subdir and files into different places.' \
+    'git diff-index --hide-dir-rename-details HEAD >current'
+grep -v "^\[DBG\] " <current >current.filtered
+cat >expected <<\EOF
+:040000 040000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 R100	a/c/	b/
+:100644 100644 fdbec444a77953b1bcc899d9fabfa202e5e68f08 fdbec444a77953b1bcc899d9fabfa202e5e68f08 R100	a/path0	d/path0
+:100644 100644 2f1f8d70c0fdad990819dfe37a31deb010805161 2f1f8d70c0fdad990819dfe37a31deb010805161 R100	a/path1	d/path1
+:100644 100644 dbde7141d737c8aa0003672c1bc21ded48c6c3b9 dbde7141d737c8aa0003672c1bc21ded48c6c3b9 R100	a/path2	d/path2
+:100644 100644 c6971ab9f08a6cd9c89a0f87d94ae347aad6144a c6971ab9f08a6cd9c89a0f87d94ae347aad6144a R100	a/path3	d/path3
+EOF
+
+test_expect_failure \
+    'validate the output for a split of subdir and files into different places.' \
+    'compare_diff_patch expected current.filtered'
+
 # now test moving a dir with no files but only subdirs
 # (only factorizes lowest-level directories - not a big deal, just not perfect)
 
@@ -285,6 +368,18 @@ test_expect_failure \
     'validate the output for a move with only subdirs.' \
     'compare_diff_patch expected current.filtered'
 
+test_expect_success \
+    'git diff-index --hide-dir-rename-details with only subdirs' \
+    'git diff-index --hide-dir-rename-details HEAD >current'
+grep -v "^\[DBG\] " <current >current.filtered
+cat >expected <<\EOF
+:040000 040000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 R100	a/	z/
+EOF
+
+test_expect_failure \
+    'validate the output for a move with only subdirs.' \
+    'compare_diff_patch expected current.filtered'
+
 # now test moving all files from toplevel into subdir (does not hides file moves) (needs consensus on syntax)
 # Note: this is a special case of move of a dir into one of its own subdirs, which in
 # turn is a variant of new files/dirs being added into a dir after all its contents
@@ -323,4 +418,16 @@ test_expect_failure \
     'validate the output for a move of everything from toplevel.' \
     'compare_diff_patch expected current.filtered'
 
+test_expect_success \
+    'git diff-index --hide-dir-rename-details everything from toplevel.' \
+    'git diff-index --hide-dir-rename-details HEAD >current'
+grep -v "^\[DBG\] " <current >current.filtered
+cat >expected <<\EOF
+:040000 040000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 R100	./*	z/
+EOF
+
+test_expect_failure \
+    'validate the output for a move of everything from toplevel.' \
+    'compare_diff_patch expected current.filtered'
+
 test_done
-- 
1.7.2.3
Previous: Yann DirsonNext: Sverre Rabbelier
Message 5 of 25 in “Detection of directory renames”
  1. 0/4 Detection of directory renamesYann Dirson, Oct 3, 2010
  2. 1/4 Introduce wholesame directory move detection in diffcore.Yann Dirson, Oct 3, 2010
  3. 2/4 Add testcases for the --detect-dir-renames diffcore flag.Yann Dirson, Oct 3, 2010
  4. 3/4 Allow hiding renames of individual files involved in a directory rename.Yann Dirson, Oct 3, 2010
  5. 4/4 Add testcases for the --hide-dir-rename-details diffcore flag.Yann Dirson, Oct 3, 2010
  6. Sverre RabbelierOct 3, 2010
  7. Sverre RabbelierOct 3, 2010
  8. Junio C HamanoOct 3, 2010
  9. Sverre RabbelierOct 4, 2010
  10. Yann DirsonOct 4, 2010
  11. Ævar Arnfjörð BjarmasonOct 4, 2010
  12. Yann DirsonOct 4, 2010
  13. Jonathan NiederOct 4, 2010
  14. Yann DirsonOct 4, 2010
  15. Jonathan NiederOct 4, 2010
  16. Andreas EricssonOct 5, 2010
  17. Ævar Arnfjörð BjarmasonOct 4, 2010
  18. Yann DirsonOct 4, 2010
  19. Jonathan NiederOct 4, 2010
  20. Yann DirsonOct 4, 2010
  21. Jonathan NiederOct 5, 2010
  22. Yann DirsonOct 6, 2010
  23. Jonathan NiederOct 4, 2010
  24. Jonathan NiederOct 5, 2010
  25. Yann DirsonOct 6, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.