{"thread":{"id":"64830","subject":"[PATCH] t1091: cone mode list deduplicates and normalizes paths","startedAt":"2026-01-19T17:01:09Z","lastAt":"2026-01-19T18:11:45Z","messageCount":2,"participants":["Pushkar Singh","Derrick Stolee"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"534185","messageId":"20260119165724.7339-3-pushkarkumarsingh1970@gmail.com","threadId":"64830","inReplyTo":null,"subject":"[PATCH] t1091: cone mode list deduplicates and normalizes paths","fromName":"Pushkar Singh","fromEmail":"pushkarkumarsingh1970@gmail.com","sentAt":"2026-01-19T16:57:26Z","receivedAt":"2026-01-19T17:01:09Z","isPatch":true,"sender":{"key":"pushkarkumarsingh1970@gmail.com","avatar":"https://avatars.githubusercontent.com/u/173247767?v=4"},"body":"Ensure that git sparse-checkout list in cone mode collapses\nsemantically identical paths (e.g. \"folder1\", \"folder1/\",\nand \"./folder1\") into a single canonical entry.\n\nThis protects user-visible behavior across different ways\nof specifying sparse-checkout patterns.\n\nSigned-off-by: Pushkar Singh <pushkarkumarsingh1970@gmail.com>\n---\n t/t1091-sparse-checkout-builtin.sh | 15 +++++++++++++++\n 1 file changed, 15 insertions(+)\n\ndiff --git a/t/t1091-sparse-checkout-builtin.sh b/t/t1091-sparse-checkout-builtin.sh\nindex b2da4feaef..d4ed215aa5 100755\n--- a/t/t1091-sparse-checkout-builtin.sh\n+++ b/t/t1091-sparse-checkout-builtin.sh\n@@ -321,6 +321,21 @@ test_expect_success 'cone mode: list' '\n \ttest_cmp expect actual\n '\n \n+test_expect_success 'cone mode: list deduplicates and normalizes paths' '\n+\tgit -C repo sparse-checkout disable &&\n+\trm -f repo/.git/info/sparse-checkout &&\n+\tgit -C repo sparse-checkout init --cone &&\n+\n+\tprintf \"folder1\\nfolder1/\\n./folder1\\n\" |\n+\t\tgit -C repo sparse-checkout set --stdin &&\n+\n+\tgit -C repo sparse-checkout list >actual &&\n+\tcat >expect <<-\\EOF &&\n+\tfolder1\n+\tEOF\n+\ttest_cmp expect actual\n+'\n+\n test_expect_success 'cone mode: set with nested folders' '\n \tgit -C repo sparse-checkout set deep deep/deeper1/deepest 2>err &&\n \ttest_line_count = 0 err &&\n-- \n2.43.0\n\n"},{"id":"534188","messageId":"edbde063-2c39-4812-9970-247b67f678c7@gmail.com","threadId":"64830","inReplyTo":"20260119165724.7339-3-pushkarkumarsingh1970@gmail.com","subject":"Re: [PATCH] t1091: cone mode list deduplicates and normalizes paths","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2026-01-19T18:11:44Z","receivedAt":"2026-01-19T18:11:45Z","isPatch":true,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 1/19/2026 11:57 AM, Pushkar Singh wrote:\n> Ensure that git sparse-checkout list in cone mode collapses\n> semantically identical paths (e.g. \"folder1\", \"folder1/\",\n> and \"./folder1\") into a single canonical entry.\n\nAre you aware that this is already being worked on? [1]\n\n[1] https://lore.kernel.org/git/20260119123339.48435-1-amishhhaaaa@gmail.com/\n\nPlease contribute review to that thread with the context\nyou've gathered creating this patch.\n\nThanks,\n-Stolee\n\n"}]}