Web lists-archives.com

Re: Request: git add --interactive: split hunk: When can't split further, split on empty lines




Hi James,

On Wed, 29 May 2019, James Harvey wrote:

> When adding interactively, 's' can be used to split the current hunk.
> Once it gets down to where 's' reports "Sorry, cannot split this
> hunk", it could be useful if it would then start splitting based on
> empty lines, probably leaving empty lines at the top of the split
> hunks.  It certainly wouldn't be perfect, and might create many hunks,
> but it would be a nice alternative to manually editing the hunk.
> Certainly someone could still manually edit the hunk if they didn't
> want to use it in a particular situation.

While a neat idea from the users' perspective, I think that it is
technically a bit challenging, as you then have a problem to coalesce the
patches appropriately.

The thing with the splitting at context lines is that you have a much
easier time to merge individual split-hunks into a "coalesced" hunk
because the context lines stay context lines.

Having said that, there was a patch series recently to add the ability to
stage individual lines, and I think that your feature request could be
implemented on top of that.

In the meantime, an Outreachy intern and I worked on turning `git add -i`
into a built-in (it was written in Perl, and the built-in is written in
portable C instead), and I *think* that the plan with the patch series to
stage individual lines was to re-implement it on top of the built-in patch
series.

Would you be interested in participating in that project?

Ciao,
Johannes