public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: "Raymond E. Pasco" <ray@ameretat•dev>
To: git@vger•kernel.org
Cc: Junio C Hamano <gitster@pobox•com>,
	Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail•com>,
	Jason Cho <jason11choca@proton•me>,
	"aclopte@gmail•com" <aclopte@gmail•com>,
	Ryan Hodges <rhodges@cisco•com>,
	"Raymond E. Pasco" <ray@ameretat•dev>
Subject: [PATCH 3/5] apply: only write intents to add for new files
Date: Sat, 10 May 2025 20:36:46 -0400	[thread overview]
Message-ID: <20250511003955.242889-4-ray@ameretat.dev> (raw)
In-Reply-To: <20250511003955.242889-1-ray@ameretat.dev>

In the "update only the worktree" mode, the index should not be touched
except to record intents to add when --intent-to-add is on. Because
having --intent-to-add on sets update_index, to indicate that we are
touching the index, we can't rely only on that flag to decide whether to
write an index entry. Instead, we must test whether we are in a mode
which updates the index, or else are in worktree-only mode with
--intent-to-add on and the current file being an addition.

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 3bde54a04a..a749f904c7 100644
--- a/apply.c
+++ b/apply.c
@@ -4569,7 +4569,7 @@ static int create_file(struct apply_state *state, struct patch *patch)
 
 	if (patch->conflicted_threeway)
 		return add_conflicted_stages_file(state, patch);
-	else if (state->update_index)
+	else if (state->check_index || (state->ita_only && patch->is_new > 0))
 		return add_index_file(state, path, mode, buf, size);
 	return 0;
 }
-- 
2.49.0.1106.gc0efa3ba58


  parent reply	other threads:[~2025-05-11  0:40 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-01  9:03 [PATCH v3] apply: --intent-to-add should imply --index Jason Cho
2025-05-01 12:48 ` Kristoffer Haugsbakk
2025-05-01 16:31   ` Junio C Hamano
2025-05-02  4:11     ` Ryan Hodges
2025-05-03  3:51       ` Raymond E. Pasco
2025-05-03  8:22         ` Raymond E. Pasco
2025-05-11  0:36         ` [PATCH 0/5] apply: fix apply --intent-to-add Raymond E. Pasco
2025-05-11  0:36           ` [PATCH 1/5] apply: error on --intent-to-add outside gitdir Raymond E. Pasco
2025-05-11  0:36           ` [PATCH 2/5] apply: read in the index in --intent-to-add mode Raymond E. Pasco
2025-05-12  2:13             ` Raymond E. Pasco
2025-05-13 17:52               ` Jason Cho
2025-05-11  0:36           ` Raymond E. Pasco [this message]
2025-05-11  0:36           ` [PATCH 4/5] t4140: test apply --intent-to-add interactions Raymond E. Pasco
2025-05-11  0:36           ` [PATCH 5/5] apply docs: clarify wording for --intent-to-add Raymond E. Pasco
  -- strict thread matches above, loose matches on Subject: below --
2025-06-28 22:52 [PATCH 0/5] fix apply --intent-to-add Raymond E. Pasco
2025-06-28 22:52 ` [PATCH 3/5] apply: only write intents to add for new files Raymond E. Pasco
2025-06-30 18:53   ` Junio C Hamano
2025-07-01  5:44     ` Raymond E. Pasco

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250511003955.242889-4-ray@ameretat.dev \
    --to=ray@ameretat$(echo .)dev \
    --cc=aclopte@gmail$(echo .)com \
    --cc=git@vger$(echo .)kernel.org \
    --cc=gitster@pobox$(echo .)com \
    --cc=jason11choca@proton$(echo .)me \
    --cc=kristofferhaugsbakk@fastmail$(echo .)com \
    --cc=rhodges@cisco$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox