<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:ent="http://www.purl.org/NET/ENT/1.0/" version="2.0">
  <channel>
    <title>Curiouser and Curiouser! on godo</title>
    <link>http://matt.blogs.it/</link>
    <description>RSS feed for topic godo</description>
    <copyright>Copyright 2008 Matt Mower. Some rights reserved.</copyright>
    <generator>Squib/0.5.0.382</generator>
    <managingEditor>self@mattmower.com</managingEditor>
    <webMaster>self@mattmower.com</webMaster>
    <language>en-gb</language>
    <item>
      <title>Announcing godo</title>
      <link>http://matt.blogs.it/entries/00002814.html</link>
      <pubDate>Fri, 14 Mar 2008 13:51:27 +0000</pubDate>
      <description>&lt;p&gt;A while ago I &lt;a href="http://matt.blogs.it/entries/00002674.html"&gt;wrote about a script&lt;/a&gt; I'd written that I called &lt;code&gt;gp&lt;/code&gt; which addressed a frustration I had about, essentially, starting work. What gp did was eliminate all the drudgery involved with opening &lt;code&gt;iTerm&lt;/code&gt; tabs (yes I still use it in preference to &lt;code&gt;Terminal.app&lt;/code&gt; despite it's occasionally &lt;em&gt;freezing up&lt;/em&gt; for a few seconds under Leopard), changing directory to my project folder, and running lots of different commands for editors, browsers, version control, and so on.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;gp&lt;/code&gt; script had many deficiencies, some of which were &lt;a href="http://onrails.org/articles/2007/11/28/scripting-the-leopard-terminal"&gt;addressed by&lt;/a&gt; Solomon White who made his own version that worked with &lt;code&gt;Terminal.app&lt;/code&gt;. But neither script was ideal and we agreed that, at some point, it would make sense to pool our efforts.&lt;/p&gt;

&lt;p&gt;Pressure of work meant I didn't look any further at it until last weekend when I found myself compelled to build a new version of &lt;code&gt;gp&lt;/code&gt; which I have called &lt;a href="http://simplyruby.rubyforge.org/godo"&gt;godo&lt;/a&gt; which stands for:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;go (to project) do (stuffs)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I started out using &lt;code&gt;hoe&lt;/code&gt; to make the new script a gem and addressed all the issues that had made &lt;code&gt;gp&lt;/code&gt; unwieldy like it's use of a pre-build folder index (that was never up to date), the clumsy configuration, and the lack of separation from &lt;code&gt;iTerm&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This was also a good opportunity for me to test out GitHub. From the beginning I made &lt;code&gt;godo&lt;/code&gt; [available as a GitHub project0(http://github.com/mmower/godo/tree/master). I was surprised and delighted when [Lee Marlow forked](http://github.com/lmarlow/godo/tree) &lt;code&gt;godo&lt;/code&gt; and pushed up a bunch of changes including &lt;code&gt;Terminal.app&lt;/code&gt; support, depth pruning, and per-project configuration.&lt;/p&gt;

&lt;p&gt;It meant I had to figure out how to add Lee's repository as a remote with a local tracking branch:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git remote add lmarlow git://github.com/lmarlow/godo.git
get fetch lmarlow
git branch --track lmaster lmarlow/master
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;take a look at the changes he'd made:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git log -p master..lmarlow/master
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;then merge them into my own branch for release:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git merge lmaster
git push origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I might have preferred to cherry pick his changes and integrate them separately but it felt like a bridge too far, for me, in Git terms. I was just pleased finally to have his changes integrated.&lt;/p&gt;

&lt;p&gt;godo is, i think, more or less ready for serious use. If you want it:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo gem install godo
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to get the latest version (1.0.5) which supports both &lt;code&gt;iTerm&lt;/code&gt; and &lt;code&gt;Terminal&lt;/code&gt;. If you like it please leave a comment or something. And if you find bugs or missing features, you are welcome to fork the project and push some changes!&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002814.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
  </channel>
</rss>
