Hi Phillip, [Cc:ing Slavica, the Outreachy intern working on converting `add -i` to a built-in] On Mon, 10 Dec 2018, Phillip Wood wrote: > On 09/12/2018 20:31, Johannes Schindelin wrote: > > > > On Sun, 9 Dec 2018, Junio C Hamano wrote: > > > > > * pw/add-p-select (2018-07-26) 4 commits > > > - add -p: optimize line selection for short hunks > > > - add -p: allow line selection to be inverted > > > - add -p: select modified lines correctly > > > - add -p: select individual hunk lines > > > > > > "git add -p" interactive interface learned to let users choose > > > individual added/removed lines to be used in the operation, instead > > > of accepting or rejecting a whole hunk. > > > > > > Will discard. > > > No further feedbacks on the topic for quite some time. > > > > That is not quite true. I did comment that this feature > > Sorry I meant to reply to that comment but never got round to it. No worries. We're all busy down here. > > (which I take as being inspired by Git GUI's "Stage Selected Line"), > > not particularly, I don't use git gui I just wanted a way to easily > stage a subset of lines without editing the hunk. Okay. I used to use Git GUI quite a bit to stage individual lines, but recently I tried to stay more in the terminal and used the `split` and `edit` commands of `add -p` quite extensively. Wishing for an quicker way to stage individual lines between all of my debug print statements. > > and thought that it would be useful. > > > > I could imagine, however, that it would make sense for `git add -p` to > > imitate that feature more closely: by allowing to stage a single line > > and then presenting the current hunk (re-computed) again. > > that sounds like it would be quite tedious to stage more than a couple > of lines, It would be. But then, if you want to do anything slightly more complicated than staging a hunk or a line, I personally prefer the `edit` command *a lot*, as it lets me even split unrelated changes in the same line into two commits. > and it could be awkward to get it to stage modified lines correctly > (While I was writing the feature I tried git gui, I think it is supposed > to be able to stage modified lines correctly but I never persuaded it to > do it for me. I also tried gitg, tig and hg commit -i but I couldn't get > them to do modified lines either) Git GUI works very reliably for me, but then, I have Git for Windows' patched Git GUI at my finger tips (oh how I wish we had a Git GUI maintainer again). It should not be awkward to stage a single modified line at all. Essentially, you take the hunk, strip out all `-` and `+` lines except the one you want to stage, then stage that with `git apply --cached --recount`, and then you simply re-generate that hunk. > I'll try and re-roll in the New Year, when does the outreachy project > for converting add -i start? - it would be good to try and get this > pinned down before then. Too late. Slavica started on December 4th, and you can even read about it on their blog: https://slavicadj.github.io/blog/ Ciao, Dscho