HN user

mitmaro

13 karma

Software Developer, founding member of the Computer Technology Society Newfoundland and Labrador, B.Sc. Computer Science. I was compiled with pedantic enabled.

Posts2
Comments6
View on HN

I've been working on adding diff support to a tool I created a while back for interactive rebases in Git. It's been interesting digging into libgit2 and the Rust bindings.

https://github.com/MitMaro/git-interactive-rebase-tool

The tool/utility provides an easy interface for managing the interactive rebase TODO file. It's heavily inspired by vim and I have plans to expand the functionality.

I had tried a similar tool that was written using Node.js but that seemed like overkill. After ranting about the lack of a good tool, my co-worker at the time challenged me to write it that evening after work. I added to the challenge that I would write it Rust since I had not used the language before and I had heard several good things about it. After hacking away for several hours that evening, I had a working prototype to show at work the next day. Since then the project has evolved a lot and it's gained some traction. It now has a small community behind it, which is really awesome!

I am not a Mac user anymore, but when I was I used Homebrew a fair bit. A Homebrew package would be great and there has been an issue [1] for it for a little while.

Adding the Git version to README is a great idea. I will have to do some research on when the `sequence.editor` option was added. An initial check [2] makes me believe it will work with Git > 1.7.8, which was over 7 years ago.

1: https://github.com/MitMaro/git-interactive-rebase-tool/issue...

2: https://github.com/git/git/commit/821881d88d3012a64a52ece9a8...

Author here, I started this project over two years ago when one of my friends challenged me to write it. It was based on https://github.com/sjurba/rebase-editor , but does not require NodeJS/JavaScript. I and several others have been using it almost daily for over a year, so it is ready for general use.

It's written in Rust, but as I only occasionally get a chance to work in the language, development has been slow. I would very much welcome PRs to make improvements and add functionality.