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

Re: [PATCH v4 00/34] Add directory rename detection to git

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 13, 2017, 01:06 UTC
Message-ID
<xmqqh8svxwpm.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20171129014237.32570-1-newren@gmail.com>
Elijah Newren <newren@gmail.com> writes:
> This patchset introduces directory rename detection to merge-recursive.

The use of negated form of test_i18ngrep in these patches are all wrong. Because the helper must say "even though the string does not match (does match), the test expects it to match (does not match), and we know that expectation won't hold simply because we are under poison build", so negating the result of test_i18ngrep won't work. Instead, you would tell test_i18ngrep that we do not expect it to find matching lines.

Even with the attached, test #70 will still fail because you have a construct that greps in output of test_i18ngrep. That won't work under poison build, because the output of test_i18ngrep won't have the string you are looking for under poison build.

We may probably want to redirect the output of underlying grep to /dev/null in test_i18ngrep to make this kind of misuse easier to spot.

 t/t6043-merge-rename-directories.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/t/t6043-merge-rename-directories.sh b/t/t6043-merge-rename-directories.sh
index f64c7d273b..8f58f08ed2 100755
--- a/t/t6043-merge-rename-directories.sh
+++ b/t/t6043-merge-rename-directories.sh
@@ -554,7 +554,7 @@ test_expect_success '2b-check: Directory split into two on one side, with equal
 		git rev-parse >expect \
 			O:z/b O:z/c B:x/d &&
 		test_cmp expect actual &&
-		! test_i18ngrep "CONFLICT.*directory rename split" out
+		test_i18ngrep ! "CONFLICT.*directory rename split" out
 	)
 '
 
@@ -705,7 +705,7 @@ test_expect_success '3b-check: Avoid implicit rename if involved as source on cu
 		test_cmp expect actual &&
 
 		test_i18ngrep CONFLICT.*rename/rename.*z/d.*x/d.*w/d out &&
-	! test_i18ngrep CONFLICT.*rename/rename.*y/d
+		test_i18ngrep ! CONFLICT.*rename/rename.*y/d
 	)
 '
 
@@ -3146,7 +3146,7 @@ test_expect_failure '10e-check: Does git complain about untracked file that is n
 		echo random >z/c &&
 
 		git merge -s recursive B^0 >out 2>err &&
-	! test_i18ngrep "following untracked working tree files would be overwritten by merge" err &&
+		test_i18ngrep ! "following untracked working tree files would be overwritten by merge" err &&
 
 		test 3 -eq $(git ls-files -s | wc -l) &&
 		test 0 -eq $(git ls-files -u | wc -l) &&
Previous: Elijah NewrenNext: Junio C Hamano
Message 36 of 40 in “Add directory rename detection to git”
  1. 00/34 Add directory rename detection to gitElijah Newren, Nov 29, 2017
  2. 15/34 merge-recursive: move the get_renames() functionElijah Newren, Nov 29, 2017
  3. 24/34 merge-recursive: add a new hashmap for storing file collisionsElijah Newren, Nov 29, 2017
  4. 13/34 directory rename detection: tests for handling overwriting untracked filesElijah Newren, Nov 29, 2017
  5. 05/34 directory rename detection: directory splitting testcasesElijah Newren, Nov 29, 2017
  6. 12/34 directory rename detection: miscellaneous testcases to complete coverageElijah Newren, Nov 29, 2017
  7. 19/34 merge-recursive: split out code for determining diff_filepairsElijah Newren, Nov 29, 2017
  8. 22/34 merge-recursive: add get_directory_renames()Elijah Newren, Nov 29, 2017
  9. 02/34 merge-recursive: fix logic ordering issueElijah Newren, Nov 29, 2017
  10. 18/34 merge-recursive: make !o->detect_rename codepath more obviousElijah Newren, Nov 29, 2017
  11. 17/34 merge-recursive: fix leaks of allocated renames and diff_filepairsElijah Newren, Nov 29, 2017
  12. 31/34 merge-recursive: fix remaining directory rename + dirty overwrite casesElijah Newren, Nov 29, 2017
  13. 04/34 directory rename detection: basic testcasesElijah Newren, Nov 29, 2017
  14. 26/34 merge-recursive: check for file level conflicts then get new nameElijah Newren, Nov 29, 2017
  15. 16/34 merge-recursive: introduce new functions to handle rename logicElijah Newren, Nov 29, 2017
  16. 28/34 merge-recursive: apply necessary modifications for directory renamesElijah Newren, Nov 29, 2017
  17. 23/34 merge-recursive: check for directory level conflictsElijah Newren, Nov 29, 2017
  18. 06/34 directory rename detection: testcases to avoid taking detection too farElijah Newren, Nov 29, 2017
  19. 11/34 directory rename detection: testcases exploring possibly suboptimal mergesElijah Newren, Nov 29, 2017
  20. 03/34 merge-recursive: add explanation for src_entry and dst_entryElijah Newren, Nov 29, 2017
  21. 14/34 directory rename detection: tests for handling overwriting dirty filesElijah Newren, Nov 29, 2017
  22. 25/34 merge-recursive: add computation of collisions due to dir rename & mergingElijah Newren, Nov 29, 2017
  23. 33/34 merge-recursive: avoid spurious rename/rename conflict from dir renamesElijah Newren, Nov 29, 2017
  24. 27/34 merge-recursive: when comparing files, don't include treesElijah Newren, Nov 29, 2017
  25. 32/34 directory rename detection: new testcases showcasing a pair of bugsElijah Newren, Nov 29, 2017
  26. 21/34 merge-recursive: make a helper function for cleanup for handle_renamesElijah Newren, Nov 29, 2017
  27. 10/34 directory rename detection: more involved edge/corner testcasesElijah Newren, Nov 29, 2017
  28. 20/34 merge-recursive: add a new hashmap for storing directory renamesElijah Newren, Nov 29, 2017
  29. 09/34 directory rename detection: testcases checking which side did the renameElijah Newren, Nov 29, 2017
  30. 30/34 merge-recursive: fix overwriting dirty files involved in renamesElijah Newren, Nov 29, 2017
  31. 29/34 merge-recursive: avoid clobbering untracked files with directory renamesElijah Newren, Nov 29, 2017
  32. 08/34 directory rename detection: files/directories in the way of some renamesElijah Newren, Nov 29, 2017
  33. 34/34 merge-recursive: ensure we write updates for directory-renamed fileElijah Newren, Nov 29, 2017
  34. 07/34 directory rename detection: partially renamed directory testcase/discussionElijah Newren, Nov 29, 2017
  35. 01/34 Tighten and correct a few testcases for merging and cherry-pickingElijah Newren, Nov 29, 2017
  36. Junio C HamanoDec 13, 2017
  37. Junio C HamanoDec 13, 2017
  38. Elijah NewrenDec 13, 2017
  39. Ramsay JonesDec 13, 2017
  40. Junio C HamanoDec 13, 2017

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.