Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 347932

Summary: Please revert EGit commit dialog
Product: [Technology] EGit Reporter: Alex Blewitt <alex.blewitt>
Component: UIAssignee: Project Inbox <egit.ui-inbox>
Status: RESOLVED WONTFIX QA Contact:
Severity: major    
Priority: P3 CC: angvoz.dev, b.muskalla, kevin, Knut.Friedhelm, mik.kersten, robert.munteanu, robin.rosenberg, robin, steffen.pingel
Version: 1.0   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Attachments:
Description Flags
cvs commit dialog none

Description Alex Blewitt CLA 2011-06-01 09:14:03 EDT
The EGit UI has undergone a radical surgery between the original incarnation for 0.12 to the current white-is-everything look at the moment. It unfortunately disgusies the window from looking like a dialog (it looks more like a floating view) and the options to 'generate change id' and select all files' are now minimal buttons with very little context.

In comparison with the previous dialog, the ability to instantly see and appreciate what is happening (e.g. 'Calculate Change-Id for Gerrit Review') is now completely hidden behind a small icon and will not help those whose first experience is EGit. Furthermore, the 'select all' and 'deselect all', which used to be easily hittable buttons next to the commit and cancel buttons (which weren't taking up any more space) are buried behind opaque icons completely separately from where the checkboxes actually are.
Comment 1 Andrew Gvozdev CLA 2011-06-01 09:39:53 EDT
I totally agree with that. While the new dialog looks nicer, I find the old one more usable and miss checkboxes showing commit options at a glance. It is not obvious for example if amend option is turned on and the icon is not that clear (in all fairness it would be probably hard to come up with an expressive one). Also, a good UI would guide a user and the icons inhibit discovery of the options.
Comment 2 Kevin Sawicki CLA 2011-06-01 13:09:29 EDT
The idea was to switch to using a toolbar so that more options can be added in the future without increasing the size of the dialog.  A toolbar allows first-level options as well as a drop-down for advanced options that is consistent with how views layout options.

Just so I'm clear, are you suggesting not using form sections, not using a white background, or not using toolbars for options (amend, change-id, etc)?

Here are some other screenshots of possible new commit dialogs looks:

http://img.skitch.com/20110519-8ggj8ytsxtbmwbnmn92wbc2gf7.png
http://img.skitch.com/20110519-dnecsyas3x1m4rb3aksuka1g1c.png
http://img.skitch.com/20110519-mk2anb6ykahd2naj42euqwgefs.png
Comment 3 Alex Blewitt CLA 2011-06-01 13:33:25 EDT
* Not using form sections - agreed
* Not using white background - agreed
* Not using toolbars for options - agreed

Basically, like it was before was good. All of the above suggestions use icons, which unless you know what they mean, are meaningless.

Some suggestions to save space:

Instead of a table of 1x4 of options, you could have 2x2

Seeing as the 'author' and 'committer' are almost always going to be the same, use an 'advanced' drop-down which hides the author/commiter info and can expand that section on demand. Maybe put all of the info in a revealable section.

Commit msg

[+] Show advanced options

Files

Commit Msg

[-] Show advanced options
Committer: Me
Author: You
[ ] Amend previous commit    [ ] Generate Change ID
[ ] Show untracked files       [ ] Add signed-off-by

That way, the default (everything is in preferences) can be used, and the drop-down can show the specific information. But I'm not sure whether we'd ever want show untracked files to be off - do we even need that any more?

The 'add all' button didn't take up any more space as it sits neatly next to the commit button in any case.
Comment 4 Alex Blewitt CLA 2011-06-02 06:25:58 EDT
I think this has broken more than just the GUI. 

Before, you could leave the 'Generate Gerrit Change Id' selected, and it would remember it upon subsequent invocations of the commit panel. Now, this 'remember the state' has been thrown away, with the result that you have to select it *each time* you want to calculate the change id for the project. It doesn't seem to matter that I have the hook in place which generates it from the command line.

Please, just revert this change before EGit 1.0 is released.
Comment 5 Kevin Sawicki CLA 2011-06-02 12:18:25 EDT
Are you using the gerrit.createchangeid git config setting?
Comment 6 Alex Blewitt CLA 2011-06-02 12:44:05 EDT
No, I'm saying that the old UI maintained the checkbox state so that you didn't need to do it. Really, 1.0 is almost here and instead of nit picking about various options the sensible thing would be to roll it back like it was.
Comment 7 Kevin Sawicki CLA 2011-06-02 12:57:15 EDT
It involves rolling back more than just the commit dialog UI, several other commit-related classes were refactored to support sharing between the commit dialog and the staging view.
Comment 8 Alex Blewitt CLA 2011-06-02 13:05:01 EDT
One suggestion to help move forwards; make gerrit.createchangeid a selectable property in the Git preferences page (along the lines of 'wrap hard commits'). I presume this is only supported in EGit, rather than the command line hook?
Comment 9 Steffen Pingel CLA 2011-09-18 16:28:52 EDT
I strongly agree with the concerns that Alex has listed on this bug report. I found the old commit dialog significantly easier to use. I provided better visual separation between the UI elements than the forms-based UI, better consistency with other dialogs in the platform and the selected actions were more obvious. After using the new dialog for several month I still have a hard time memorizing the meaning of icons and find myself hovering over them frequently to reveal the tooltip.

Collapseable sections provide a good way to reduce the complexity of a UI in common scenarios while still providing quick access to advanced options for expert users.

(In reply to comment #3)
> * Not using form sections - agreed
> * Not using white background - agreed
> * Not using toolbars for options - agreed

+1

All options that modify the commit should be controlled by buttons with descriptive labels. Toolbars should be used for controlling filters and the other visual aspects of the UI (e.g. to show untracked files, open the compare view).

Here is a suggestion based on comment#3:

pre.. 

----------------
|Commit Message|
----------------

Committer: Me

>>> Advanced options

 Author: You
 [ ] Amend previous commit    
 [ ] Generate Change ID
 [ ] Add signed-off-by

-------
|Files|
-------
Comment 10 Kevin Sawicki CLA 2011-09-19 13:28:04 EDT
Hi Steffen, thanks for the feedback, just to be clear, in your proposal, the Form widgets and sections would not be used at all correct?
Comment 11 Steffen Pingel CLA 2011-09-19 13:56:26 EDT
Created attachment 203618 [details]
cvs commit dialog
Comment 12 Steffen Pingel CLA 2011-09-19 14:02:51 EDT
I would only use an ExpandableComposite but not use any of the form widgets. I have attached a screenshot of the CVS commit dialog that shows how they embedded toolbars and used borders to separate sections.
Comment 13 Robin Rosenberg CLA 2013-03-17 17:22:56 EDT
Reverting won't happen.