Git Version Contron Graphical Tools

Sunday, December 28th, 2008 at 11:21 pm

*Update 2009-05-05* Also check out my quick post on gitg, a gnome based UI for git.

One thing that I have found while working with git is that there isn’t a wide selection of graphical tools to interact with the repository. There is gitk which comes with a default install of git. This program gives you a visual representation of the workflow of the repository that you’re currently working on. From your checkout folder typing gitk should bring up a window similar to this one.

gitk

You’ll see a list of commits and a line tieing it to the parent commit. If you have a team of developers working on a single project, this can make for some interesting graphs to say the least. Tags are highlighted with a nice yellow flag which makes them stand out. Right clicking on a commit will let you view the differences between it and the currently select commit. Also, you can roll back the master branch to the selected version. In the bottom right pane there is a list of changed files on the currently select commit. Right clicking on one of these will let you bring it up in an external diff tool to view the changes that were made (I recommend meld for this).

If you were looking closely at the previous screen shot, you may have noticed that this was a clone of the Giggle repository. It’s also an sudo apt-get install giggle for simplicity’s sake. Giggle has a nicer interface that fits in with the gnome desktop environment better as you can see from the screen shot.

giggle

Also, built in to the giggle interface is the ability to commit directly from there which seems to be lacking from the gitk app unless I’m completely missing something.

giggle-commit

The last app I’ll look at for today is qgit4. This program is one that I cloned and compiled locally. You can make a clone of the repo by typing in

git clone git://git.kernel.org/pub/scm/qgit/qgit4.git

Then cd qgit4 and type in

qmake qgit.pro
make
make install

You’ll need the Qt developer libraries installed for this to work, but if all went according to plan, you should have a bin directory with a qgit4 executable in it now. It should looks something kinda like this:

qgit

Qgit4 seems to be one of the more full-featured programs I’ve come across yet. It feels like it fits in more with the KDE desktop environment withsince it uses the Qt libraries. However, it lets you create multiple tabs if you want to take a closer look at each file and what changed. Clicking on a revision will show you the list of files that changed in the bottom right pane as well. Then right clicking on a file can open it in an external diff viewer as well.

I think each of these programs has their place. For quick ‘what change in this commit’ gitk seems to fit the bill nicely (albeit rather ugly) and if you’re using gnome, I recommend giggle (if you can bring yourself to using a program named giggle… just don’t tell anyone else).

For typical day-to-day operations like committing, adding files to version control, and tagging I find that using the command line is pretty hard to beat though. However, having tools like these available will make git accessable to a wider audience, and easier to pitch to the team for your next development project.

Tags: ,

2 Responses to “Git Version Contron Graphical Tools”

  1. Nicolas Dufresne says:

    “Also, built in to the giggle interface is the ability to commit directly from there which seems to be lacking from the gitk app unless Iā€™m completely missing something.”

    GitK does not do that since ‘git gui’ (builtin git GUI) already does that with similar toolkit and interface.

  2. Dan says:

    Thanks for pointing that out Nicolas šŸ™‚ Apparently I didn’t have that package installed.

    If git gui doesn’t work for someone else, a quick ‘sudo apt-get install git-gui’ should do the trick if you’re running Debian (Ubuntu).