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

[PATCH v3 1/4] clean: demonstrate a bug with pathspecs

From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
Date
Jan 16, 2020, 20:21 UTC
Message-ID
<9efed585ef7a1c09ed62998882236e7dbb58383a.1579206117.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.692.v3.git.git.1579206117.gitgitgadget@gmail.com>
From: Derrick Stolee <dstolee@microsoft.com>

b9670c1f5e (dir: fix checks on common prefix directory, 2019-12-19) modified the way pathspecs are handled when handling a directory during "git clean -f <path>". While this improved the behavior for known test breakages, it also regressed in how the clean command handles cleaning a specified file.

Add a test case that demonstrates this behavior. This test passes before b9670c1f5e then fails after.

Helped-by: Kevin Willford <Kevin.Willford@microsoft.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
---
 t/t7300-clean.sh | 9 +++++++++
 1 file changed, 9 insertions(+)
diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index 6e6d24c1c3..782e125c89 100755
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
@@ -737,4 +737,13 @@ test_expect_success MINGW 'handle clean & core.longpaths = false nicely' '
 	test_i18ngrep "too long" .git/err
 '
 
+test_expect_failure 'clean untracked paths by pathspec' '
+	git init untracked &&
+	mkdir untracked/dir &&
+	echo >untracked/dir/file.txt &&
+	git -C untracked clean -f dir/file.txt &&
+	ls untracked/dir >actual &&
+	test_must_be_empty actual
+'
+
 test_done
-- 
gitgitgadget
Previous: Derrick StoleeNext: Derrick Stolee
Message 11 of 15 in “dir: restructure in a way to avoid passing around a struct dirent”
  1. dir: restructure in a way to avoid passing around a struct direntElijah Newren via GitGitGadget, Jan 14, 2020
  2. Johannes SchindelinJan 14, 2020
  3. Elijah NewrenJan 14, 2020
  4. Jeff KingJan 14, 2020
  5. dir: restructure in a way to avoid passing around a struct direntElijah Newren via GitGitGadget, Jan 15, 2020
  6. dir: point treat_leading_path() warning to the right placeJeff King, Jan 15, 2020
  7. Elijah NewrenJan 15, 2020
  8. 0/4 dir: more fill_directory() fixesElijah Newren via GitGitGadget, Jan 16, 2020
  9. 2/4 dir: treat_leading_path() and read_directory_recursive(), round 2Elijah Newren via GitGitGadget, Jan 16, 2020
  10. Derrick StoleeJan 17, 2020
  11. 1/4 clean: demonstrate a bug with pathspecsDerrick Stolee via GitGitGadget, Jan 16, 2020
  12. Derrick StoleeJan 17, 2020
  13. Elijah NewrenJan 17, 2020
  14. 4/4 dir: point treat_leading_path() warning to the right placeJeff King via GitGitGadget, Jan 16, 2020
  15. 3/4 dir: restructure in a way to avoid passing around a struct direntJeff King via GitGitGadget, Jan 16, 2020

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.