{"id":114,"date":"2012-03-18T22:46:26","date_gmt":"2012-03-18T22:46:26","guid":{"rendered":"http:\/\/boulderinformationservices.wordpress.com\/?p=114"},"modified":"2012-03-18T22:46:26","modified_gmt":"2012-03-18T22:46:26","slug":"git-is-beautiful","status":"publish","type":"post","link":"https:\/\/boulderinformationservices.com\/blog\/git-is-beautiful\/","title":{"rendered":"Git is Beautiful"},"content":{"rendered":"<p><a href=\"http:\/\/boulderinformationservices.com\/blog\/wp-content\/uploads\/2012\/03\/beautiful_git_tree.png\"><img loading=\"lazy\" decoding=\"async\" width=\"105\" height=\"802\" class=\"alignleft size-full wp-image-115\" title=\"Beautiful Git Tree (from Tower)\" src=\"http:\/\/boulderinformationservices.com\/blog\/wp-content\/uploads\/2012\/03\/beautiful_git_tree.png\" alt=\"\" \/><\/a>Git is beautiful. Especially with Tower, a Git client only available on a Mac.<\/p>\n<h2>Repository interfaces<\/h2>\n<p>Several years ago, software developers generally decided that Git (or Mercurial) were better repositories than Subversion, in part because branching was cheaper and easier.<\/p>\n<p>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&#8217;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.<\/p>\n<p>I have seen the future, and its name is Tower.<\/p>\n<p>I&#8217;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.<\/p>\n<h2>Tree graph art, a digression<\/h2>\n<p>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).<\/p>\n<p>It looks like chaos, but at every point, everyone&#8217;s copy of the code worked, and so did the trunk. They just worked differently from each other.<\/p>\n<h2>Singing Tower&#8217;s praises<\/h2>\n<p>I can get a tree graph using &#8220;gitk&#8221; on my Windows computer, but it&#8217;s not nearly as beautiful as the one provided by Tower.<\/p>\n<p>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.<\/p>\n<p>Of the various other interfaces to Git that I&#8217;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.<\/p>\n<p>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.<\/p>\n<p>But if there were a Tower for Windows, I&#8217;d convert all of my repositories today. Tower is so good, in fact, that it&#8217;s <em>almost<\/em> worth considering switching from Windows to a Mac.<\/p>\n<p>(And no, I haven&#8217;t been paid by Tower to say these nice things. But one can hope!)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Git is beautiful. Especially with Tower, a Git client only available on a Mac. Repository interfaces Several years ago, software developers generally decided that Git (or Mercurial) were better repositories than Subversion, in part because branching was cheaper and easier. &hellip; <a href=\"https:\/\/boulderinformationservices.com\/blog\/git-is-beautiful\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,13,16],"tags":[],"_links":{"self":[{"href":"https:\/\/boulderinformationservices.com\/blog\/wp-json\/wp\/v2\/posts\/114"}],"collection":[{"href":"https:\/\/boulderinformationservices.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/boulderinformationservices.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/boulderinformationservices.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/boulderinformationservices.com\/blog\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":0,"href":"https:\/\/boulderinformationservices.com\/blog\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"wp:attachment":[{"href":"https:\/\/boulderinformationservices.com\/blog\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/boulderinformationservices.com\/blog\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/boulderinformationservices.com\/blog\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}