-
-
Notifications
You must be signed in to change notification settings - Fork 27
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
rfc: Add dedicated rebase UI? #81
Comments
I had the same idea but was worried it would provide a lesser experience regarding keyboard navigation, specially if I enable Perhaps it could be a view switcher? Anyway – I like the idea and would love if Commit could also provide some tooltips to help beginners understand what's going on there. |
Heh, I didn't claim it was an original idea :-)
I'm less worried there. Keyboard navigation of lists is already pretty good out-of-the-box (tab or up/down arrows to move between rows, enter or space to open the popover with the available actions). There is no built-in support for moving rows, but I don't expect that to be harder than shortcuts to move lines of text. Vim bindings come in handy for stuff like There's one thing I hadn't thought of: Moving a group of commits. That can currently be done by selecting multiple lines and using the shortcuts. I don't see an obvious GUI replacement :-(
Mmh, that would certainly complicate things (not just in terms of UI). With a GUI-only approach, you just have to parse the todo once to create the UI, and write out the final state if the rebase is confirmed. A view switcher requires to have both a text buffer and a list, and keep both in sync (in either direction, as changes to the text buffer should be reflected in the UI and vice-versa). |
I meant it in a way that I also thought it was a good idea 🙌
I'm happy to implement that later or fallback to a preference. Let's default to the GUI anyway 👍 |
Hello, I've just gone through a big rebase today, and while it's easy to reorder commits, it's quite not easy to replace a pick with a squash, reword, edit, ...
If multiple lines are selected, loop over each line and apply the same replace strategy. |
Another somewhat related complication is that "Abort" appears during an interactive rebase, which is confusing to me because clicking "Abort" doesn't actually abort the rebase. Not sure if it makes sense to changing the wording globally or just in a separate rebase window. |
Unlike commits, the todo list of an interactive rebase is not free-form. We could therefore do better than just popping up an editor like git does, and instead have a dedicated UI:
Does that look like a good idea?
(I'm about to go on holiday, so may have some time for some fun hacking)
The text was updated successfully, but these errors were encountered: