Hacker News new | ask | show | jobs
by koreno 3987 days ago
'rebaser' improves on 'git rebase -i' by adding information per commit regarding which files it touched.

Each file gets an alpha-numeric character at a particular column, a list of which appears below the commit list.

Commits can be moved up and down safely (no conflicts) as long as they don't have any clashing columns.

1 comments

What does clashing column mean?
Two commits touching the same file, represented by the identifier at the end of the rebase's commit line. If you look at each file as a column, you can see which commits would clash.
Potentially clash; the commits may touch completely different parts of the same file without conflict.
This is the main prize. Using emacs + magit I can rebase and look at per commit files whilst having a buffer open to re-order commits.

In fact magit could probably do some of this with a hook on reordering commits which would not require more git metadata.

I'm not sure I care about any of this though as if I do rebase, reorder and then hit a conflict I can't resolve I can always abort the rebase.

True that!

My original idea was to somehow show the actual conflicts, but then I figured this gets the desired 80% for 2% of the effort...