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

[PATCH 2/5] apply: read in the index in --intent-to-add mode

From
Raymond E. Pasco <ray@ameretat.dev>
Date
May 11, 2025, 00:36 UTC
Message-ID
<20250511003955.242889-3-ray@ameretat.dev>
In-Reply-To
<20250511003955.242889-1-ray@ameretat.dev>

There are three main modes of operation for apply: applying only to the worktree, applying to the worktree and index (--index), and applying only to the index (--cached).

The --intent-to-add flag modifies the first of these modes, applying only to the worktree, in a way which touches the index, because intents to add are special index entries. However, it has not ever worked correctly in any but the most trivial (empty repository) cases, because the index was never read in (in apply, this is done in read_apply_cache()) before writing to it.

The update_index flag is set in apply_patch() to mean that we are touching the index at all, as opposed to the check_index flag indicating --index mode. Therefore, the reading of the index should be gated by the update_index flag rather than the check_index flag, so that we are prepared to work with the index before we begin adding intents to add to it.

Reported-by: Ryan Hodges <rhodges@cisco.com>
Original-patch-by: Johannes Altmanninger <aclopte@gmail.com>
Signed-off-by: Raymond E. Pasco <ray@ameretat.dev>
---
 apply.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apply.c b/apply.c
index 5e39cadde4..3bde54a04a 100644
--- a/apply.c
+++ b/apply.c
@@ -4837,7 +4837,7 @@ static int apply_patch(struct apply_state *state,
 					       LOCK_DIE_ON_ERROR);
 	}
 
-	if (state->check_index && read_apply_cache(state) < 0) {
+	if (state->update_index && read_apply_cache(state) < 0) {
 		error(_("unable to read index file"));
 		res = -128;
 		goto end;
-- 
2.49.0.1106.gc0efa3ba58
Previous: Raymond E. PascoNext: Raymond E. Pasco
Message 9 of 14 in “RE: [PATCH v3] apply: --intent-to-add should imply --index”
  1. Jason ChoMay 1, 2025
  2. Kristoffer HaugsbakkMay 1, 2025
  3. Junio C HamanoMay 1, 2025
  4. Ryan HodgesMay 2, 2025
  5. Raymond E. PascoMay 3, 2025
  6. Raymond E. PascoMay 3, 2025
  7. 0/5 apply: fix apply --intent-to-addRaymond E. Pasco, May 11, 2025
  8. 1/5 apply: error on --intent-to-add outside gitdirRaymond E. Pasco, May 11, 2025
  9. 2/5 apply: read in the index in --intent-to-add modeRaymond E. Pasco, May 11, 2025
  10. Raymond E. PascoMay 12, 2025
  11. Jason ChoMay 13, 2025
  12. 3/5 apply: only write intents to add for new filesRaymond E. Pasco, May 11, 2025
  13. 4/5 t4140: test apply --intent-to-add interactionsRaymond E. Pasco, May 11, 2025
  14. 5/5 apply docs: clarify wording for --intent-to-addRaymond E. Pasco, May 11, 2025

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.