-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Git dedicated panel and integration #5128
Comments
Seems generally good. Is the intention that the existing context menu entries remain on the project explorer as a way to selectively modify the index? Presumably there would be two sets of colours/some iconography to distinguish between say, a new file and a new file which has been added to the index ready to commit, and similarly with a modified file. (Incidently, your TBD on the diff view is one of the reasons why I love emacs as an IDE ;-) The other questions are an idea of how long it is likely to take and when we might start seeing it. Partly because if this is going to take a while then can we look at getting something like #5081 in as a short term workaround (which this would otherwise obsolete.) |
@iamslite Thanks for your feedback.
The 'TDB' item, for the ability to stage lines or chunk, will be addressed, we agreed that it is an important point. I would probably For now this issue is not yet estimated - hopefully, we'll have important parts of the specification done with Che 6. But until we have that in place - we will have the improvement from #5081, which could be seen as a preliminary work. |
Using the entire screen is a neat idea. Visually one should see first:
In that UI the accent is on the diff. The commit button is so tiny. It's not event visually clear what is going to be committed visually speaking (I'm not comparing to existing). It's mostly about proportions and visual grouping. GitKraken is known for it's pretty good UI which is similar to that concept but visually more clear: https://youtu.be/9YCO-3_MApI the large commit button is on the bottom right and visually you go from top to bottom. I'd still advocate to have more a GitHub Desktop UI which is simplest IMO and yet also similar. It's of cours a bit difficult to give feedbacks on a rather novel UI without trying it. A left panel is generally a way to access things and open them. I'm wondering how it may mess up things. Git is usually a way to access and modify and shared history. It'd not mix current editing with history. These are like two different things. So as long as it's clear that there is a Git state and a edit state, I think that's fine. |
It would be nice if it is easy to configure which diff viewer is used. I am curently looking into making a graphical diff viewer for EMF models using EMFCompare to provide a similar experience in che to comparing models in eclipse desktop IDE. |
I see this panel like 'Express Git panel' to perform most popular Git operations directly near editor. I think we should keep existing Git functionality (in menu and context menu) as a base Git functions, and make this panel as additional place for most common Git operations.
|
@vinokurig Thanks for your review and your feedbacks.
|
Do you have a working demo somewhere or is it only a concept so far? |
@slemeur My thoughts concerning git panels.
I am afraid but the size of the panel might be too narrow to see the full path of the modified file.
If some action doesn't require interaction with other IDE windows then I prefer to see the popup window at the middle of the screen. Because it is the location when my vision usually is directed to. It is not convenient to change that angle especially having wide screens. |
@wernight : We are starting the work on this epic. So for now we just have the spec here. @tolusha : On second item: I can understand that point but I really believe that the panel will provide a better experience. Having the panel side to side with the editor allows few use cases that are not possible with our popups. For example:
You can test what it is like to have git integrated as a left-panel by experiencing VSCode. |
It is not convenient :)
It is what I wanted to say. If some interaction requires editor or other panels then I prefer panel.
I don't think it is good experience. |
+1 for popup window. Adding navigation to previous / next diff functionality to current diff window will make review changed files much easier. |
-1 popup window because it forces users to close the popup to check other things in other panel or editor. |
@tolusha :
When doing a git operations, I don't think the full path needs to be displayed all the time. It can be displayed partially and the length adapted to the width of the panel. User will have the choice between the list view or the tree view. If he choose the tree view, he'll probably resize the panel (similarly to what he would do with the project explorer). If he choose the list view, he wants a more compact view - then the full path is not needed.
Yes, we will continue to use popups we have in order to do pull/push operations, as in the mockups.
It is a question of personal taste, but using a vertical tab for quick git interaction is something that other tools are doing and which is positively received by users. (VSCode, Atom) @vinokurig : we can add that later to the review tab. but -1 for popup, because interactions with popups are blocking the user. When a review popup is opened, the user can't change the file without closing the review popup so he can't quickly review multiple files. Side note, by using a review tab, that would allow to compare different files at the same time. |
Actually it is possible to edit files and save changes directly in the diff window. Listing multiple files in the diff window is not a problem to implement. |
I do not see any problems with popups. It looks quite reasonable in IntelliJ for example (btw why you think they leave it in popup? My guess is that they do not want to overload main view making it more confusing) and since by the UI concept we are closer to it I would leave it instead of struggling with other, especially taking into account that we probably will move to Monaco soon. |
The result of lower resolution is attached in previous comment, the content of the popup with diff doesn't fit the page, thus part of it along with controls is not accessed. |
@slemeur |
@ashumilova but can not it be fixed with proper styles? |
I think that the problem with low resolution and diff window can be solved by implementing 'full screen mode' or something like that in that popup. |
That's problem of all big popups, not diff only. As a workaround try to change zoom level. I think, it will be good (and enough for now) to have an ability to maximize the diff widget. It would be matter of a user to use it as is for quick sight or maximized for long reviewing and edition. |
In IDE the size of popups is defined on implementation stage and fixed. For such cases - whether need to have dynamic resizing or manually by user or full screen mode. |
First, we should try to avoid confusion when discussing, I see a lot of mixes between UI (= styles) and UX (= end user experience). Sometime, fixing styles helps the end user experience, and sometime it is not enough. It will be difficult to know why in IntelliJ they are keeping their review mode in popups. From what I see here, the git integration in IntelliJ was built around 2009. IntelliJ is very cool and powerful, but it does not have to be taken as the only way to go for everything we are building. You are using it, you are used to it. I understand that. I don't think the diff review in a popup is a great end-user experience for the following reasons: I actually think that integrating the review popup in an editor-tab (or as an editor mode) would be simpler than trying to make the popup more usable:
So for me, moving the diff review popup to be in an editor tab will benefit to the end-user and the implementation effort. |
Well, I am quite an old-school guy so I mostly consider UI as an " interactions between humans and machines" and styles as... styles :) . I did not say I against tab inside Editor panel in this particular case (in contrast to some else) since, yes, it is kinda other view of file. |
Personally, every time I have a popup, I start to fill some information, then I want to check something in the IDE, I close the popup window and do my checks and reopen the popup window and refill the information ... etc ... Finally I don't use the GUI because it's not usable for me. To me, pop up window should only be about yes/no question or confirmation but if you start to have a lot of interactions it is not usable at all. The mockup here is very good to me and we'll make things way better than IntelliJ. |
Yes, that's exactly my question: what kind of information you need to check in this particular case to understand how important it is to rework it to tab (I am not debating popup vs tab) |
@gazarenkov This epic is in the scope of Che 6 since we framed out the requirements for that new version. The epic has been defined accordingly with the business needs, competitive study and user feedbacks. The goal of the epic is stated in the description. I'm clearly opened to create phases for the implementation of the epic (this has been asked to @vkuznyetsov BTW) - but I'm expecting to deliver the Git panel with commit and push capability to our end-user. |
@slemeur Are you going to provide the recursive git option? |
Closing as won't fix for the time being - This epic will need to be recreated for the new generation Che ide. (#8266) |
Goal
The current Eclipse Che version is providing a Git plugin with many of features but the overall experience is tedious for users. Simple actions are needing a lot of interactions and the user flow have been made complex. The current git integration is also lacking of feedbacks to show to the user the changes that have been made.
The goal of this epic is to rethink the Git experience in order to improve the developer efficiency and provide integrated features (in the editor and in the explorer).
We'll provide a new Git panel, which will be displayed in the left area. This panel will allow the user to do the most common Git actions more easily and will progressively replace certain of the features currently implemented in the git plugin.
Linked issues and discussions
git pull --rebase
#3415git push -f
#3416Subtasks
Git commit window tree files view selection model confused #6255
Details
Git Panel:
We'll introduce a new git panel which is composed of 3 main areas:
Commented:
![ide 6 - git panel v2 - explained](https://cloud.githubusercontent.com/assets/1636769/26212528/272aa278-3bf6-11e7-9676-693bd6a43bec.png)
Commit Options:
When doing a commit, we'll provide certain options to the user so that it will be easier to configure the commit parameters. We'll provide:
The git commit options will be valid only to the commit currently in progress.
List of changes:
The list of changes will provide two view options: flat list or tree view.
The list of changes can also be sorted by different options.
The list of changes will use icons to show the different type of changes, those icons are getting a color which will be used in the project explorer and in the editor consistently.
Flat list:
![screen shot 2017-05-18 at 18 24 27](https://cloud.githubusercontent.com/assets/1636769/26212842/3ffa2020-3bf7-11e7-817c-e08324961e11.png)
Tree view:
![screen shot 2017-05-18 at 18 23 26](https://cloud.githubusercontent.com/assets/1636769/26212804/1f8deb32-3bf7-11e7-9106-e134bc094628.png)
List display options:
![screen shot 2017-05-18 at 18 25 07](https://cloud.githubusercontent.com/assets/1636769/26212871/5988b2cc-3bf7-11e7-9ee8-82ee8966f8e9.png)
It will also be possible to do a right click on the files in the list of changes to remove a file, add to gitignore or reset to an certain version.
Diff view:
![screen shot 2017-05-18 at 18 17 16](https://cloud.githubusercontent.com/assets/1636769/26212558/44d83844-3bf6-11e7-97dc-f288452914c4.png)
We'll display in the editor area the side to side view to compare the changes.
TBD: Later we will add ability to stage the changes, discard the changes from this view too.
Pull view:
Clicking on Pull or Push will open dedicate popups.
The pull view is going to show more options and allow to rebase instead of merging.
![ide 6 - git panel v2 - pull popup](https://cloud.githubusercontent.com/assets/1636769/26213174/5c48bd6c-3bf8-11e7-8c9c-3d1f381d4a43.png)
(Note: design on popups is not final and might change before final version.)
Editor and Explorer Integration:
We will also integrate Git inside of the basic elements of the IDE, such as the project explorer and the editor. The goal is to show to the user on which branch he is currently working on and also the various changes he has in progress.
The colors used, will be consistent with the Git Panel.
The text was updated successfully, but these errors were encountered: