-
-
Notifications
You must be signed in to change notification settings - Fork 21.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
VCS: Add push, pull, fetch and improved diff view to VCS UI #53900
Conversation
@pycbouh Based on a discussion with Akien, we agreed to add this in 3.5, not 3.4 which is in a feature freeze ;) |
3fcb556
to
485bc27
Compare
485bc27
to
ceed6da
Compare
This force push fixes the documentation so the CI checks should be ok now |
Leaving this here so I remember to update this PR to use #54056 in a later commit, or in a separate PR (@generrosity I will respond to the comment above ^^ as soon as I get time this week. Most of these suggestions are welcome! Just need a bit of clarity on a couple others) |
1ef9585
to
25fcb9d
Compare
694e429
to
550381c
Compare
@generrosity Thanks for the feedback!
I actually not sure if there is a common way of handling such behaviour in code, will need to check that with other contributors. Likely opening a new proposal?
We actually have this already and that is through the Ctrl+Enter editor shortcut in the commit message box. While writing a commit message, you can press Ctrl+Enter to automatically stage and commit all modified files if the staging area is empty and If the staging area is non-empty, the files in the staging area are committed.
The icons are closely resembling the Atom Git integration which you may find here. However yes, these icons are reused for push/pull/fetch for now. All the icons have tooltips to disambiguate their functions but slightly different icons would certainly bring a better UX. However, I haven't really done graphic designing in quite a while :P. This can certainly be an improvement to make later on.
Currently, clicking the files under the staging area show the diff of the staged file from the latest commit tree. Would something like that be sufficient?
The commit button becomes disabled if the commit message is empty, so the user is required to provide a commit message. However, it might become a bit too restrictive to force multi-line commits on the user. Also, anyone who wants to make multiline commits would find that the commit message box is actually a TextEdit and not a LineEdit, so pressing enter will add a line break.
From the examples you have provided, I feel these are a lot of UX related things that can be iterated as and when users show signs of struggle in using the UI. These are interesting problems and need attention to fix, however, I have been wanting to first complete the base of the feature set first so that not only me but also other contributors and users can later also help with the UX of these features. This definitely needs a bit of discussion in an open forum like the godot-proposals repository. |
550381c
to
a9a6c4b
Compare
Here's the Linux build and a demo project to test this on, for anyone reviewing: https://drive.google.com/file/d/1YVTmLNo2RYMt_p3-csHuxQFFvoxT4JXL/view?usp=sharing (Github is having a tough time handling this tiny archive for some reason, so I added it in my drive) |
This commit was created by merging the commits presented in godotengine#39255 for the GSoC 2020 VCS Improvement project VCS: Make EditorVCSInterface store less amount of internal state VCS: Add force push checkbox + more frequent VCS updates Add force push checkbox in the Commit dock. Also add some missing opportunities for checking the VCS state again on from UI inputs VCS: Fix script contents not being updated on merge conflict VCS: Add branch creation VCS interface calls VCS: Add VCS remote creation and remote selection menus VCS: Show more commit information + Fix truncated commit offsets VCS: Make VCS less noisy + Fix diff view refreshes VCS: Fix mismatched argument names in VCS helpers VCS: Add SSH transport support for remote operations Also, moves the editor's VCS settings registrations to project_settings.cpp and editor_settings.cpp VCS: Change TTR() to vformat() for branch and remote removal text VCS: Add VCS branch icon instead of using Tree node icon Co-authored-by: @ChronicallySerious
a9a6c4b
to
0b327eb
Compare
71cb8d3
to
c58391c
Compare
Thanks for all the work! |
This commit was created by merging the commits presented in #39255 for
the GSoC 2020 VCS Improvement project
VCS: Make EditorVCSInterface store less amount of internal state
VCS: Add force push checkbox + more frequent VCS updates
Add force push checkbox in the Commit dock. Also add some missing
opportunities for checking the VCS state again on from UI inputs
VCS: Fix script contents not being updated on merge conflict
VCS: Add branch creation VCS interface calls
VCS: Add VCS remote creation and remote selection menus
VCS: Show more commit information + Fix truncated commit offsets
VCS: Make VCS less noisy + Fix diff view refreshes
Co-authored by @Janglee123 🎉
This PR is containing the first few out of our commits touching the EditorVCSInterface, to update it for the next version.
Once this is merged, I will be sending the next batch of changes (instead of sending them all at once), so that I am able to address any review comments and slowly get the rest of the work reviewed/merged