Re: git add intent-to-add then git add patch no longer allows edit
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 21, 2020, 16:27 UTC
- Message-ID
- <xmqqmu2o9d6j.fsf@gitster.c.googlers.com>
- In-Reply-To
- <C52FB27V04G0.2ML0PLGDE71MG@ziyou.local>
"Raymond E. Pasco" <ray@ameretat.dev> writes:
> I fixed half of this in a topic that's on master now (it errors out > entirely if you try to stage it at all in 2.28.0),
Yup, thanks for that one.
> but new file diffs > still aren't splittable into hunks. Phillip Wood (on cc) is looking into > that; the tricky part is that when split into hunks only the first hunk > actually staged can be a "new file" patch.
Out of a change that adds a file with three parts A, B and C (in this order), you could pick the parts A and C, while leaving the change to further add B in the middle, and create a patch to add a file that has A and C, and apply that to the index alone (i.e. "add -p", pick A and C, and "add" that part by applying that "new file" diff). After that, the path is no longer i-t-a but has the real contents (i.e. part A followed by part C), so further "add -p" would see the difference between the index and the working tree as a modification patch.
So as long as you could come up with a good UI to pick parts from a single hunk "new file" diff, "the second and later application must be done as modification" should fall out naturally, no?