git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 0/4] git-gui: Add ability to revert selected hunks and lines

From
Pratyush Yadav <me@yadavpratyush.com>
Date
Aug 23, 2019, 16:44 UTC
Message-ID
<20190823164409.q23sxkfsmhvne4ud@localhost.localdomain>
In-Reply-To
<CAKPyHN27Pz8BtzdUCewZMd2wi5hx8LyJTfJqwkyTbbQLJk+=VA@mail.gmail.com>
On 23/08/19 08:04AM, Bert Wesarg wrote:
> On Fri, Aug 23, 2019 at 12:51 AM Pratyush Yadav <me@yadavpratyush.com> wrote:
> >
> > On 22/08/19 03:34PM, Junio C Hamano wrote:
[...] 
Show 12 quoted lines
> as I'm the one who use this feature for more than 7 years, I can only
> object to this. I'm happy to have the confirmation dialog for the
> whole-file revert (the current state) but having the dialog also for
> partial revert would be too disruptive. And disabling both at the same
> time would not be an option for me.
> 
> The thing is, that the partial revert "just don't happen by accident".
> Here are the minimum user actions needed to get to this dialog:
> 
> 1. whole-file revert
> 
> - do a Ctrl+J, more or less anywhere in the GUI
 
Hmm, have to agree with you on this. It is kind of easy to trigger. But 
read below why I think partial reverts are just as easy to trigger.
Show 5 quoted lines
> 2. hunk revert/revert one unselected line
> 
> - right click anywhere in the diff pane (thats around 60% of the window area)
> - move the mouse pointer down 3/4 menu items
> - click this menu item
 
But what if you wanted to click "Stage hunk", and instead click "Revert 
hunk" instead. This is what I mean by "accidentally".

This is even more a risk in the current layout of the buttons, which are in the order:

Stage Hunk Revert Hunk Stage Lines Revert Lines

In this layout, if you wanted to click Stage, you might end up clicking Revert instead, losing part of your work. Even if we switch up the layout a bit, I feel like the potential of "mis-aiming" your mouse is there, but it can certainly be improved.

Show 17 quoted lines
> 3. partially revert selected lines
> 
> - select some content in the diff pane by starting by pressing and
> holding a left click
> - end the selection by releasing the left click
> - move the mouse pointer down 3/4 menu items
> - click this menu item
> 
> Thats always at least 2 user actions more than the whole-file revert.
> Thus this cannot happen by accident quite easily in comparison to the
> whole-file revert. And thats the reason why this dialog exists, from
> my point of view.
> 
> I can see the need to disable the dialog for the whole-file revert,
> and IIRC that was also requested a long time ago on this list. But I
> don't see a reason to have this dialog also for the partial reverts as
> a safety measure.
I do (not too strongly, but I do), as I explained why above.
 
It shouldn't be too difficult to have separate knobs for whole-file and 
partial reverts, but they will add two config options. Not necessarily a 
bad thing, I just thought the people who wanted to disable partial 
reverts would also want to disable whole-file reverts.

But I have another suggestion in mind. I'll reply to one of the other emails in this thread about it. Please read it there, I'd rather not type it twice.

-- 
Regards,
Pratyush Yadav
Previous: Junio C HamanoNext: David Aguilar
Message 28 of 49 in “git-gui: Add ability to revert selected hunks and lines”
  1. 0/3 git-gui: Add ability to revert selected hunks and linesPratyush Yadav, Aug 19, 2019
  2. 1/3 git-gui: Move revert confirmation dialog creation to separate functionPratyush Yadav, Aug 19, 2019
  3. 2/3 git-gui: Add the ability to revert selected linesPratyush Yadav, Aug 19, 2019
  4. Johannes SixtAug 20, 2019
  5. Pratyush YadavAug 20, 2019
  6. Johannes SixtAug 20, 2019
  7. Pratyush YadavAug 21, 2019
  8. Johannes SchindelinAug 23, 2019
  9. Junio C HamanoAug 23, 2019
  10. Pratyush YadavAug 23, 2019
  11. Johannes SixtAug 23, 2019
  12. 3/3 git-gui: Add the ability to revert selected hunkPratyush Yadav, Aug 19, 2019
  13. Junio C HamanoAug 20, 2019
  14. Pratyush YadavAug 20, 2019
  15. Bert WesargAug 21, 2019
  16. Pratyush YadavAug 21, 2019
  17. 0/4 git-gui: Add ability to revert selected hunks and linesPratyush Yadav, Aug 22, 2019
  18. 1/4 git-gui: Move revert confirmation dialog creation to separate functionPratyush Yadav, Aug 22, 2019
  19. 2/4 git-gui: Add option to disable the revert confirmation promptPratyush Yadav, Aug 22, 2019
  20. 3/4 git-gui: Add the ability to revert selected linesPratyush Yadav, Aug 22, 2019
  21. Bert WesargAug 23, 2019
  22. Pratyush YadavAug 23, 2019
  23. 4/4 git-gui: Add the ability to revert selected hunkPratyush Yadav, Aug 22, 2019
  24. Junio C HamanoAug 22, 2019
  25. Pratyush YadavAug 22, 2019
  26. Bert WesargAug 23, 2019
  27. Junio C HamanoAug 23, 2019
  28. Pratyush YadavAug 23, 2019
  29. David AguilarAug 23, 2019
  30. Bert WesargAug 24, 2019
  31. Bert WesargAug 24, 2019
  32. David AguilarAug 24, 2019
  33. Johannes SixtAug 24, 2019
  34. 0/4 git-gui: Add ability to revert selected hunks and linesPratyush Yadav, Aug 28, 2019
  35. 1/4 git-gui: allow reverting selected linesPratyush Yadav, Aug 28, 2019
  36. 2/4 git-gui: allow reverting selected hunkPratyush Yadav, Aug 28, 2019
  37. 3/4 git-gui: return early when patch fails to applyPratyush Yadav, Aug 28, 2019
  38. 4/4 git-gui: allow undoing last revertPratyush Yadav, Aug 28, 2019
  39. Bert WesargOct 21, 2019
  40. Pratyush YadavOct 21, 2019
  41. Bert WesargOct 22, 2019
  42. Pratyush YadavOct 23, 2019
  43. Johannes SixtOct 21, 2019
  44. Bert WesargOct 22, 2019
  45. Pratyush YadavOct 23, 2019
  46. Pratyush YadavSep 10, 2019
  47. Johannes SixtSep 10, 2019
  48. Bert WesargSep 12, 2019
  49. Pratyush YadavAug 25, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.