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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,  some minor comments.
On 30/05/2019 15:53, Johannes Schindelin wrote:
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,
A binary search style split may be an option to avoid the 'many hunks' issue.
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,
I believe that the git-gui (in tk/tcl, but using git commands) was already able to stage individual/selected lines, so there may be some ideas from there.

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
--
Philip



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux