Feb 18 2009

git GUIs

One of the nice things about git is due to its UNIXy design and its massive and ever-growing popularity, there are a lot of really nice bells and whistles, and I think we can expect to see even more. For example, GitHub.

While most git interaction is with simple commands in the terminal, it often pays to be able to get a birds-eye view of the revision history, or what I will call the DAG. The original tool for this is gitk. Gitk is functional, but it’s really really unpleasant. It’s written in Tcl/Tk—what did you expect? Some of us have higher standards for usability.

I tried out a few git GUIs and I have settled on two that I think are best of breed. The first is tig. Tig is an ncurses program, so it excels for remote operation over ssh, for quick dives into the repository without reaching for the mouse, and in keyboard use. Think of it as mutt for git. It’s a fantastic program and I use it most frequently.

I have customized my tig setup slightly:
$ cat /Users/fugalh/.tigrc
set show-rev-graph = yes
color cursor white blue
$ alias | grep tig
alias tiga='tig --all'

The second is GitX. It’s a mac app in every good sense, and it’s an excellent git GUI. As you can tell from the screenshot, it’s a bit easier on the eyes for visualizing complicated DAGs (not that this screenshot is of a complicated DAG).

If you use GitX be sure to “Enable Terminal Usage…” so you can start it on the current repository on the terminal by typing gitx.


Jul 18 2007

Sup

There’s a new email client in town. It’s still brand squeaking new, but it
shows promise. It’s called Sup.

If you have a love-hate relationship with GMail, Sup may be for you. It takes
some of the excellent things about GMail, improves on them, and dispenses with
most of the antiexcellent things about GMail. For example, it’s console-based
(a la mutt), you can use your favorite editor to edit mail (again, a la mutt),
and you have real threads instead of flat pseudo-thread “conversations”.

If I had to describe it in a few words, I’d say it was a gmail and mutt mashup.
It looks really cool. I might give it a try, if I want to bad enough.
Unfortunately it looks like setting it up is not going to be a walk in the
park. It’s not that it’s particularly hard in any way, in fact the opposite. It
has an easy interactive (if slightly redneck) config program to get you up and
running quickly. The problem is that it has to know about all your mail
sources, and by that I mean all your mail folders in all your mail accounts. I
have dozens of folders in at least two accounts. Adding them by hand will not
be pleasant. With mutt, or thunderbird, or whatever, you either just access the
folders, or at least you subscribe to them. I understand the technical reason
(fast searching) but it’s just got to be easier to import existing folders and
elaborate procmail setups.

One of the benefits of the gmailesque “search and tag” approach to email is
making it easy to deal with folders and filters. I would expect, then, a way to
set up procmailesque automatic labelling (like gmail allows, but I’d really
prefer a procmailesque syntax). Even better, automatic labelling (and
archiving, perhaps by config) based on List-Id headers. Then joining and
leaving lists might just be easy enough that I’d consider doing it more
frequently (i.e. for bug reports). In fact, while I’m dreaming, one-touch
subscribe/unsubscribe to the list the current message came from would be way
cool.

It’s amazingly complete for beta version 0.1. I expected a half-baked client
with lots of bugs, but what I see is a fledgling mutt-like interface with
extreme potential and high usability even now. I expect to see more keybindings
as time goes on and people request them. I expect to see more hookability,
where you can do random whatevers e.g. when a certain regex is matched on a new
message, etc. I expect a little smarter security of my passwords. I expect
custom colorization (never was a big fan of default mutt colors), etc. All
these things I expect will come with time. It’s a promising client.

All mail clients suck. This one might just suck better.