Phillip Wood <phillip.wood@xxxxxxxxxxxx> writes: > ... [I'm beginning to see why all the other programs I tried while > writing this (tig, gitg, gitk and mercurial's version of add -i) > don't make any attempt to stage modified lines correctly, though I > think git should have some way of doing it.] Yes, this is a kind of feature that one can propose and implement something that works well for some of the limited cases one uses, but not in other cases, and it becomes very hard to explain how to work around the implementation limitation---that is why I stopped at "split this hunk?" and did not go beyond it when I designed the original "incremental add" feature. I think the real reason why it is hard is that there is no good definition of "modified" in "stage modified lines", and worse, there is no good way to mechanically figure it out, because a patch only gives you "these were deleted" and "these are added", without giving you "this line in the deleted block corresponds to these two lines in the added block" (i.e. "this original one line was modified into this thing in the result").