I’m thinking of creating a Git GUI program, similar to SourceTree.
The problem with SourceTree is it’s not open source, and their code base is Cocoa on Mac and .NET on Windows, so it’s inconsistent, plus they’re doing twice the amount of work to maintain it. It also has a longstanding bug with macOS (not sure if it’s Apple or ST’s fault - still very annoying).
I’ve made a few tweaks to get the latest libgit2 building on Haiku nightly (had to disable threads and OpenSSL for now). Some tests still fail, such as hard links (it seems BFS doesn’t support this at all?).
So it’s mostly a matter of putting a simple GUI over libgit2, which shouldn’t be too difficult. Also would be good to learn the new layout system and working with UI controls.
It looks like we have a libgit2 recipe: https://github.com/haikuports/haikuports/blob/master/dev-libs/libgit2/libgit2-0.25.1.recipe – might be worth checking that out, or possibly updating it (I don’t think anything is using it presently…)
Also, sounds like a cool project (though I probably wouldn’t use it all that much). There’s some prior art in the form of MoleSvn: https://github.com/HaikuArchives/MoleSvn – could also be potentially useful.
I’ll check out that recipe, seems like it’s got all the dependencies, which is good. MoleSvn might have some reusable UI components, I’ll take a look there too. Thanks.
I’ve expressed an interest in a simple workflow oriented app several times. Since I’ve struggled with Git the few times I’ve used it, I’d be glad to provide feedback.
Even the most basic app would be of great help here. I use a mix of vimdiff (for diffs), git-forest or tig (for browsing history tree), git-big-picture (for really large repos), and of course the git CLI. But there are many cases where something more integrated would be useful (at work I use gitk a lot to keep track of things).
Maybe you can also borrow some code from ponpokodiff(https://github.com/HaikuArchives/PonpokoDiff) for showing diffs between files.
(edit: fixed link to PonpokoDiff, thanks for noticing)
I guess that the link that PulkoMandy tried to share is it:
Might I suggest having a look at https://gitup.co ? I used that when I was working on a Mac and it’s gloriously good, though it doesn’t have a ton of features.
I believe it implements its own version of libgit, in Swift/Obj-C though. It seem to me that it’s faster than the other GUIs out there and has a really nice view for line-by-line staging. Might be worth taking a look at it for inspiration!
Looks like it’s all open source too, that could be very helpful. Thanks, I’ll take a look!