Re: Request: git add --interactive: split hunk: When can't split further, split on empty lines
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- May 30, 2019, 14:53 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1905301644020.44@tvgsbejvaqbjf.bet>
- In-Reply-To
- <CA+X5Wn5bt-3zHUqtRDWtc0A82SFmWPuQ0+RvRLaAV6Vn24nf4g@mail.gmail.com>
Hi James,
On Wed, 29 May 2019, James Harvey wrote:
Show 8 quoted lines
> 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