Subject: [PATCH 8/8] sparse-index: improve advice message instructions

From: Derrick Stolee <[email-masked]>
Date: Mon, 20 Oct 2025 10:24:04 -0400

From 0ee829fea73d495dd32deda4553ea00f9299c701 Mon Sep 17 00:00:00 2001
From: Derrick Stolee <[email-masked]>
Date: Mon, 20 Oct 2025 10:19:22 -0400
Subject: [PATCH 8/8] sparse-index: improve advice message instructions

When an on-disk sparse index is expanded to a full one, this could be due to
some worktree state that requires looking at file entries hidden within
sparse tree entries. These can be avoided if the worktree is cleaned up and
some other issues related to the index state. Expand the advice message to
include all of these cases, since 'git sparse-checkout clean' is not
currently capable of handling all cases.

In the future, we may improve the behavior of 'git sparse-checkout clean' to
handle all of the cases.

Helped-by: Elijah Newren <[email-masked]>
Signed-off-by: Derrick Stolee <[email-masked]>
---

Here is an add-on patch to add to this series to hopefully satisfy
Elijah's feedback. Sorry it took so long to be able to get back to
this!

-Stolee

  sparse-index.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/sparse-index.c b/sparse-index.c
index 5d14795063b..76f90da5f5f 100644
--- a/sparse-index.c
+++ b/sparse-index.c
@@ -32,8 +32,9 @@ int give_advice_on_expansion = 1;
  	"Your working directory likely has contents that are outside of\n"     \
  	"your sparse-checkout patterns. Use 'git sparse-checkout list' to\n"   \
  	"see your sparse-checkout definition and compare it to your working\n" \
-	"directory contents. Running 'git sparse-checkout clean' may assist\n" \
-	"in this cleanup."
+	"directory contents. Cleaning up any merge conflicts or staged\n"      \
+	"changes before running 'git sparse-checkout clean' or 'git\n"         \
+	"sparse-checkout reapply' may assist in this cleanup."

  struct modify_index_context {
  	struct index_state *write;
-- 
2.47.0.vfs.0.3