←back to thread

115 points NyuB | 3 comments | | HN request time: 0.001s | source

I use interactive rebase quite often, and particularly like the editor bundled with IntelliJ. But I do not always work with IntelliJ, and am not 'fluent' with Vim, so I tried to replicate roughly the same rebase experience within a TUI. I used a small TUI OCaml project i made last year.

The notable features are: - Move commits up and down, fixup, drop - Rename commits from the editor (without having to stop for a reword during the rebase run) - Visualize modified files along commits - 'Explode' a commit ,creating a commit for each modified file (a thing I found myself doing quite often)

Feedbacks (both on the tool and the code) and contributions welcome, hope it could fit other people needs too !

Show context
the_duke ◴[] No.41836624[source]
I think all of this is available in lazygit as well, which seems to still be way too unknown, despite the 50k stars: https://github.com/jesseduffield/lazygit
replies(6): >>41836678 #>>41836781 #>>41836904 #>>41837000 #>>41837050 #>>41837147 #
rkangel ◴[] No.41837147[source]
All I want is a good TUI git log viewer. I'm perfectly happy to do all the operations on the command line, but navigating the log works well interactively (e.g. start as --first-parent, with single line entries and then be able to selectively show branch commits, and patches for commits).

I end up with a log view and then copy and paste commit hashes to do different things. Or use Sublime Merge which is great, but doesn't work over SSH.

replies(2): >>41837262 #>>41838948 #
keybored ◴[] No.41837262[source]
I was curious if tig(1) could do such a navigation. But I didn’t find anything.
replies(1): >>41837410 #
1. rkangel ◴[] No.41837410[source]
tig seem pretty close. Does everything except toggling "first-parent". I might implement that bit.
replies(1): >>41837539 #
2. keybored ◴[] No.41837539[source]
I don’t understand? It accepts all git-log(1) etc. arguments. `git --first-parent` for example. But I don’t see how to navigate from a merge commit to the second parent or something.
replies(1): >>41837743 #
3. rkangel ◴[] No.41837743[source]
Yes, I've just discovered that in parallel. All I need for perfection is to be able to enable/disable that in the view dynamically (and the cursor stay in the same place).

But what's there is actually useful and I've installed tig properly now.