I love the promise of the git revision control system: It's fast, it's free, it can handle huge workloads, and sites like github have made git the de facto standard. However, I absolutely hate the command line interface. I find it inconsistent, unfriendly, and generally difficult to work with. The UI and the documentation have an air of smug superiority about them (or perhaps that's my own inferiority complex): they seem to say "If you can't understand the internal data structures git uses, you're too stupid to use this tool".
I'm clearly not the only person frustrated by this: Kim Silkebækken created the amusing git man page generator, which uses markov chains to generate random (but plausible) git documentation. In a similar vein, Jonathan Hartley explains git using spatial analogies (or doesn't).
My difficulties aren't due to it being a command line tool either: I spend 90% of my working life in a terminal emulator. Nor is it due to git being a revision control system: I learned to use the bzr command line UI with ease. My suspicion is that the git developers didn't have anyone else in mind when designing and implementing their UI. In the early days of git, who could have predicted the success of the tool, or the wide audience it would attract?
I'm slowly learning the command line UI, but sometimes I just want to "get stuff done", and the command line is too frustrating to use: I need a GUI application to use alongside the command line. After considering the alternatives, it seems like gitg is the most appropriate choice for a Linux system. There's a problem though: the version packaged in Ubuntu Utopic is 0.2.7, the latest upstream release is 3.15.1. I know the rudiments of debian packaging, so I thought I'd spend some time updating the gitg package to the latest upstream version. I had no idea what I was getting myself in for.
In the end, I ended up rebuilding libgit2, libgit2-glib, webkit2gtk, and gitg. All the packages are in my 'gitg' PPA. If you'd like to try it out, enter these commands in a terminal:
$ sudo add-apt-repository ppa:thomir/gitg $ sudo apt-get update $ sudo apt-get install gitg
Warning: This PPA includes a newer version of libgit, which may cause other applications that use the same library to break. As such, it is extremely experimental. If these packages cause you to lose data, don't say I didn't warn you!
The new gitg application seems to work well though:
I'll try and keep this PPA up to date, and will build Vivid packages once Vivid is released. If you have any questions, please don't hesitate to contact me.