Several years ago, software developers generally decided that Git (or Mercurial) were better repositories than Subversion, in part because branching was cheaper and easier.
I have stuck with Subversion for a very long time because Tortoise gave me a graphical interface on Windows. In contrast, Git practically insists that you to use a command line. I have read comments openly hostile to Windows users who didn’t want to memorize git commands and were looking for a better interface. I have now installed something called Git GUI and I like it better than the command line, but it still feels pretty chintzy.
I have seen the future, and its name is Tower.
I’m currently working at a company that uses Mac computers, and they all use Tower, which is a beautiful, intuitive interface to Git. When I open Tower, I see a list of all the most recent snapshots, along with a beautiful timeline showing the Tree Graph of how we got to the most current top-level snapshot.
Tree graph art, a digression
The tree graph of our workflow fascinates me. The one to the left begins at the bottom when there was a single trunk, and ends at the top when we had all committed our changes back into a single trunk. And in-between are four parallel lines (meaning four colleagues were working simultaneously). There is a riot of branching (when a new colored line splits off), reintegrating (when a spur jumps to a different-colored line, usually left-to-right), and merging (when a colored line ends by joining another, usually right-to-left).
It looks like chaos, but at every point, everyone’s copy of the code worked, and so did the trunk. They just worked differently from each other.
Singing Tower’s praises
I can get a tree graph using “gitk” on my Windows computer, but it’s not nearly as beautiful as the one provided by Tower.
Further, Tower lets me control the repository using right-clicks (creating branches) or drag-and-drop (merging and reintegrating). Fetches, pulls, and pushes are the push of a button on the menu bar.
Of the various other interfaces to Git that I’ve tried, none have been written in an O.S.-native language, which means the interface feels unpolished. Buttons, windows, or scrollbars feel unnatural and somehow untrustworthy. Tower is built as a native OSX app, and it feels solid.
Yes, I have memorized many of the Git commands. I can and do use Git on my Windows computer for some clients, although I prefer SVN simply because Tortoise makes it easy to use.
But if there were a Tower for Windows, I’d convert all of my repositories today. Tower is so good, in fact, that it’s almost worth considering switching from Windows to a Mac.
(And no, I haven’t been paid by Tower to say these nice things. But one can hope!)