Git Product home page Git Product logo

Comments (5)

sonnyp avatar sonnyp commented on June 1, 2024 1

Heh, I didn't claim it was an original idea :-)

I meant it in a way that I also thought it was a good idea 🙌

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'm happy to implement that later or fallback to a preference.

Let's default to the GUI anyway 👍

from commit.

oleastre avatar oleastre commented on June 1, 2024 1

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, ...
I had a look at the keyboard short cuts hoping to have some rebase specific one there, but without luck.
A quick win for me, that would not need a big UI change, would be to have shortcuts that just replace the first line word with an other one. for example:

Ctrl+p => pick
Ctrl+s => squash
Ctrl+e => edit
Ctrl+r => reword
Ctrl+d => delete

If multiple lines are selected, loop over each line and apply the same replace strategy.

from commit.

sonnyp avatar sonnyp commented on June 1, 2024

I had the same idea but was worried it would provide a lesser experience regarding keyboard navigation, specially if I enable GtkSourceView Vim emulation.

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.

Related https://gitlab.gnome.org/GNOME/gitg/-/issues/4

from commit.

fmuellner avatar fmuellner commented on June 1, 2024

I had the same idea

Heh, I didn't claim it was an original idea :-)

was worried it would provide a lesser experience regarding keyboard navigation, specially if I enable GtkSourceView Vim emulation.

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 0cw squash as that's easier than HomeShiftCtrlsquash, but then you don't need either if the only navigation you need is up/down.

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 :-(

Perhaps it could be a view switcher?

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).

from commit.

coreyberla avatar coreyberla commented on June 1, 2024

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.

from commit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.