<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jabbering Giraffe &#187; svn</title>
	<atom:link href="http://happygiraffe.net/blog/tag/svn/feed/" rel="self" type="application/rss+xml" />
	<link>http://happygiraffe.net/blog</link>
	<description></description>
	<lastBuildDate>Wed, 19 Oct 2011 10:40:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>neon-debug-mask</title>
		<link>http://happygiraffe.net/blog/2009/09/23/neon-debug-mask/</link>
		<comments>http://happygiraffe.net/blog/2009/09/23/neon-debug-mask/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 12:12:10 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/blog/?p=1622</guid>
		<description><![CDATA[Sometimes, it&#8217;s useful to see what subversion&#8217;s actually doing when talking to a server. There&#8217;s a neon-debug-mask option in ~/.subversion/servers. But what values can it take? They&#8217;re not documented in the subversion manual. As always, the source is informative. /* &#8230; <a href="http://happygiraffe.net/blog/2009/09/23/neon-debug-mask/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sometimes, it&#8217;s useful to see what subversion&#8217;s actually doing when talking to a server.  There&#8217;s a <a href="http://svnbook.red-bean.com/en/1.5/svn.advanced.confarea.html#svn.advanced.confarea.opts.servers"><code>neon-debug-mask</code></a> option in <code>~/.subversion/servers</code>.  But what values can it take?  They&#8217;re not documented in the subversion manual.</p>
<p>As always, the <a href="http://svn.webdav.org/repos/projects/neon/trunk/src/ne_utils.h">source</a> is informative.</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Debugging masks. */</span>
<span style="color: #339933;">#define NE_DBG_SOCKET (1&lt;&lt;0) /* raw socket */</span>
<span style="color: #339933;">#define NE_DBG_HTTP (1&lt;&lt;1) /* HTTP request/response handling */</span>
<span style="color: #339933;">#define NE_DBG_XML (1&lt;&lt;2) /* XML parser */</span>
<span style="color: #339933;">#define NE_DBG_HTTPAUTH (1&lt;&lt;3) /* HTTP authentication (hiding credentials) */</span>
<span style="color: #339933;">#define NE_DBG_HTTPPLAIN (1&lt;&lt;4) /* plaintext HTTP authentication */</span>
<span style="color: #339933;">#define NE_DBG_LOCKS (1&lt;&lt;5) /* WebDAV locking */</span>
<span style="color: #339933;">#define NE_DBG_XMLPARSE (1&lt;&lt;6) /* low-level XML parser */</span>
<span style="color: #339933;">#define NE_DBG_HTTPBODY (1&lt;&lt;7) /* HTTP response body blocks */</span>
<span style="color: #339933;">#define NE_DBG_SSL (1&lt;&lt;8) /* SSL/TLS */</span>
<span style="color: #339933;">#define NE_DBG_FLUSH (1&lt;&lt;30) /* always flush debugging */</span></pre></div></div>

<p>Or if you&#8217;re not a C coder (or had to spent more than 3 seconds working it out like me):</p>
<dl>
<dt>1</dt>
<dd>raw socket</dd>
<dt>2</dt>
<dd>HTTP request/response handling</dd>
<dt>4</dt>
<dd>XML parser</dd>
<dt>8</dt>
<dd>HTTP authentication (hiding credentials)</dd>
<dt>16</dt>
<dd>plaintext HTTP authentication</dd>
<dt>32</dt>
<dd>WebDAV locking</dd>
<dt>64</dt>
<dd>low-level XML parser</dd>
<dt>128</dt>
<dd>HTTP response body blocks</dd>
<dt>256</dt>
<dd>SSL/TLS</dd>
<dt>1073741824</dt>
<dd>always flush debugging</dd>
</dl>
<p>These are summed to enable the features you want. So, if I want requests, responses and bodies, that&#8217;s 2+8+128, so I need this in <code>~/.subversion/servers</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>global<span style="">&#93;</span></span>
<span style="color: #000099;">neon-debug-mask</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 138</span></pre></div></div>

<p>Of course, interpreting the resulting output is up to you, but if you&#8217;re having difficulties, it may give you some clue what&#8217;s up.  I can immediately see the large &#8220;log&#8221; command that <code><a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html">git svn</a> rebase</code> is using for instance.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2009/09/23/neon-debug-mask/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Commit Messages</title>
		<link>http://happygiraffe.net/blog/2008/12/18/commit-messages/</link>
		<comments>http://happygiraffe.net/blog/2008/12/18/commit-messages/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 22:17:46 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/blog/?p=1434</guid>
		<description><![CDATA[I&#8217;ve been using git for most of this year. It&#8217;s been a really excellent ride, and the things it enables are wonderful. But one of the things I&#8217;ve found most handy is a convention. The commit message is treated like &#8230; <a href="http://happygiraffe.net/blog/2008/12/18/commit-messages/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://git.or.cz/">git</a> for most of this year.  It&#8217;s been a really excellent ride, and the things it enables are wonderful.  But one of the things I&#8217;ve found most handy is a <em>convention</em>.</p>
<p>The commit message is <a href="http://www.kernel.org/pub/software/scm/git/docs/git-commit.html#_discussion">treated like an email</a>: one line of subject and then a few paragraphs of explanation.  Keep the subject line short so you don&#8217;t have scroll bars when they&#8217;re displayed.</p>
<p>This works really well for scanning the history of a project — you can get at at a glance overview of what&#8217;s changed and then click on a single commit for more detail.  I&#8217;ve tried to carry this over to subversion projects as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2008/12/18/commit-messages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The best subversion client</title>
		<link>http://happygiraffe.net/blog/2008/11/20/the-best-subversion-client/</link>
		<comments>http://happygiraffe.net/blog/2008/11/20/the-best-subversion-client/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 10:20:54 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/blog/?p=1412</guid>
		<description><![CDATA[The best subversion client I&#8217;ve used to date? git. It&#8217;s so script-friendly! This morning somebody asked me for a complete history of a project in CSV format. Using my nicely cloned repository, it was a simple matter of giving the &#8230; <a href="http://happygiraffe.net/blog/2008/11/20/the-best-subversion-client/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The best subversion client I&#8217;ve used to date?  <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html"><code>git</code></a>.  It&#8217;s <em>so</em> script-friendly!  This morning somebody asked me for a complete history of a project in CSV format.  Using my nicely cloned repository, it was a simple matter of giving the correct format to <a href="http://www.kernel.org/pub/software/scm/git/docs/git-log.html#_pretty_formats">git log</a>.</p>
<pre>
  &#x21D2; git log --pretty='format:%h,%ai,%an,%s' | head -5
  f584913,2008-09-26 21:58:02 +0000,Dominic Mitchell,Pull out a base class for OptionInstances.
  803a32a,2008-09-26 21:57:38 +0000,Dominic Mitchell,Organise imports.
  1cb0132,2008-09-26 21:57:17 +0000,Dominic Mitchell,Switch from a Set of OptionInstance to a Map from Option to OptionInstance.
  a0c1efd,2008-09-26 21:56:56 +0000,Dominic Mitchell,Introduce OptionInstance.
  a211ae3,2008-09-26 21:55:59 +0000,Dominic Mitchell,Use standard idiom for emptying a Set
</pre>
<p>I <em>love</em> how git embodies the Unix toolkit approach.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2008/11/20/the-best-subversion-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing 3rd Party Code</title>
		<link>http://happygiraffe.net/blog/2008/09/23/managing-3rd-party-code/</link>
		<comments>http://happygiraffe.net/blog/2008/09/23/managing-3rd-party-code/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 22:04:31 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/blog/?p=1392</guid>
		<description><![CDATA[I&#8217;m in a pickle. There&#8217;s a project at $WORK that I should have been paying closer attention to (but haven&#8217;t). We&#8217;ve taken some 3rd party software (guanxi as it happens), and made some modifications in order to form our own &#8230; <a href="http://happygiraffe.net/blog/2008/09/23/managing-3rd-party-code/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in a pickle.  There&#8217;s a project at $WORK that I should have been paying closer attention to (but haven&#8217;t).  We&#8217;ve taken some 3rd party software (<a href="http://www.guanxi.uhi.ac.uk/">guanxi</a> as it happens), and made some modifications in order to form our own custom distribution.  But:</p>
<ul>
<li>We started modifying what was then the trunk.</li>
<li>The trunk has moved forwards.</li>
<li>Our modifications are not isolated chunks of work (though they should be).</li>
</ul>
<p>In other words, it&#8217;s a classic <a href="http://en.wikipedia.org/wiki/Merge_(revision_control)">merge</a> scenario.  Except that both our changes and the trunk are contained within a <a href="http://en.wikipedia.org/wiki/Concurrent_Versions_System">CVS</a> repository.  This means that the original ancestor (the point at which divergence started) can be somewhat difficult to ascertain.</p>
<p>Thankfully, I&#8217;ve had moderate success using <a href="http://www.kernel.org/pub/software/scm/git/docs/git-cvsimport.html"><code>git cvsimport</code></a> to pull everything into a git repository.  Well, actually five git repositories, thanks to <code>git cvsimport</code> not <em>quite</em> understanding CVS&#8217; modules file format.  So, <a href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html"><code>git merge</code></a> should assist me.  But of course, I&#8217;m unfamiliar enough with the guanxi code to know how to successfully resolve conflicts.  Best of all, it looks like new development which is similar to ours is happening on a <a href="http://guanxi.cvs.sourceforge.net/guanxi/Common/?pathrev=METADATA_MANAGEMENT_010808">branch</a> destined to go into the trunk.</p>
<p>Where does this leave me?  For now, a long session of merging with the developer who did the changes.  But longer term, we also need to:</p>
<ul>
<li>Split out our code changes into their own packages (or for preference, project).</li>
<li><em>Regularly</em> merge in changes from trunk.</li>
<li>Talk to the <a href="http://codebrane.com/blog/">original developer</a> about whether or not he can make life easier for us.</li>
<li>Switch to using git proper rather than developing in the original CVS tree.</li>
</ul>
<p>It doesn&#8217;t help that the project in question is a Java webapp &#8212; we want to reuse the classes in that webapp as a jar file in our own webapp.  This is yet another complicating factor…</p>
<p>My head hurts.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2008/09/23/managing-3rd-party-code/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>git branches with subversion</title>
		<link>http://happygiraffe.net/blog/2008/08/24/git-branches-with-subversion/</link>
		<comments>http://happygiraffe.net/blog/2008/08/24/git-branches-with-subversion/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 19:27:29 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/blog/?p=1329</guid>
		<description><![CDATA[I like using git, particularly in combination with git svn. It makes it really easy to work with version control offline. But there&#8217;s a problem: branches. Now git is really good at using branches. Unfortunately, git svn can&#8217;t cope very &#8230; <a href="http://happygiraffe.net/blog/2008/08/24/git-branches-with-subversion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I like using <a href="http://git.or.cz/"><code>git</code></a>, particularly in combination with <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html"><code>git svn</code></a>. It makes it really easy to work with version control offline. But there&#8217;s a problem: branches.</p>
<p>Now <code>git</code> is really good at using branches.  Unfortunately, <code>git svn</code> can&#8217;t cope very well with pushing one of git’s merges back into subversion. It gets really confused. Trust me.</p>
<p>Thankfully, I’ve found an easy way to do it:  patches.</p>
<p>In the git format-patch man page, there’s a useful example:</p>
<pre>
  % git format-patch -k --stdout R1..R2 | git-am -3 -k
</pre>
<p>That is, make a mailbox full of all the changes between R1 and R2, then apply them to the current checked out branch.  Essentially, &#8220;copy the changes on that branch to this one&#8221;.</p>
<p>I just needed to do this with a project I&#8217;ve been playing with.  I&#8217;d been working on a branch <em>proper-xml-generation</em>. In order to merge it, I had to:</p>
<ol>
<li><a href="http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html">Rebase</a> that branch on the master, so I know that there won’t be any conflicts.
<ul>
<li><code>git checkout proper-xml-generation; git rebase master</code></li>
</ul>
</li>
<li>Switch back to the master branch.
<ul>
<li><code>git checkout master</code></li>
</ul>
</li>
<li>Copy the patches.
<ul>
<li><code>git format-patch -k --stdout master..proper-xml-generation | git am -3 -k</code></li>
</ul>
</li>
<li>Pump the results back into subversion.
<ul>
<li><code>git svn dcommit</code></li>
</ul>
</li>
</ol>
<p>And hey presto, the branch is back in subversion.  It looks a bit weird having 14 commits in a few seconds though.</p>
<p>The main disadvantage of this is that it&#8217;s pretty much a one-time push back into subversion.  You don&#8217;t get all the nice usual features of git, where you can make more changes on the branch and merge them.  But it&#8217;s been sufficient for me for a little while now, so I thought I&#8217;d share it.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2008/08/24/git-branches-with-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Code Hosting &#8211; svn import</title>
		<link>http://happygiraffe.net/blog/2007/07/16/google-code-hosting-svn-import/</link>
		<comments>http://happygiraffe.net/blog/2007/07/16/google-code-hosting-svn-import/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 13:52:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2007/07/16/google-code-hosting-svn-import/</guid>
		<description><![CDATA[I&#8217;ve just started a new project on Google Code Hosting (of which more later). I&#8217;ve been developing it in a local svn repository, and I&#8217;d like to transfer it up to the google svn server. This isn&#8217;t easy. Google help &#8230; <a href="http://happygiraffe.net/blog/2007/07/16/google-code-hosting-svn-import/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just started a new project on <a href="http://code.google.com/hosting/">Google Code Hosting</a> (of which more later).  I&#8217;ve been developing it in a local svn repository, and I&#8217;d like to transfer it up to the google svn server.</p>
<p>This isn&#8217;t easy.  Google help has <a href="http://code.google.com/support/bin/answer.py?answer=56673&#38;topic=10386">How do I import an existing Subversion repository?</a>, but that&#8217;s only half the answer.  The problem is that I develop many projects in one single repository (I find it easier to manage).  So I wanted to export a <em>subset</em> of my repository to google.</p>
<p>Sadly, <a href="http://svn.collab.net/repos/svn/trunk/notes/svnsync.txt">svnsync</a> doesn&#8217;t support that.</p>
<p>The workaround is simple (yet tiresome).  You have to create a mini-repository containing just the subset of the original repository you want, then send <em>that</em> to google.  This is what I came up with to export just <code>/project</code>.</p>
<pre>
  % svnadmin create /tmp/project-repos
  % svnadmin dump -q /home/svn/public |
  &gt; svndumpfilter include /project --renumber-revs -drop-empty-revs |
  &gt; svnadmin load -q /tmp/project-repos
</pre>
<p>Of course, now that I have the subset isolated, the path structure is wrong.  Everything is living under <code>/project/trunk</code> instead of <code>/trunk</code>.  So, we have to fix that.</p>
<pre>
  % svn mv file:///tmp/project-repos/project/trunk file:///tmp/project-repos/
  % svn rm file:///tmp/project-repos/project -m 'No longer needed.'
</pre>
<p>Finally, I can use svnsync to send the changes to google:</p>
<pre>
  % svnsync init --username happygiraffe.net https://project.googlecode.com/svn file:///tmp/project-repos
  % svnsync sync --username happygiraffe.net https://project.googlecode.com/svn file:///tmp/project-repos
</pre>
<p>Phew.  What a palaver.  It would have been nice if they could accept a file containing the output of <code>svnadmin dump</code> instead&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2007/07/16/google-code-hosting-svn-import/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Subverting Word Processors</title>
		<link>http://happygiraffe.net/blog/2007/02/13/subverting-word-processors/</link>
		<comments>http://happygiraffe.net/blog/2007/02/13/subverting-word-processors/#comments</comments>
		<pubDate>Tue, 13 Feb 2007 14:44:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[rtf]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2007/02/13/subverting-word-processors/</guid>
		<description><![CDATA[I don&#8217;t think it&#8217;s unreasonable to want to store my documents in subversion. But what to do? Word processors all seem to produce ugly binary documents. Even though OpenOffice.org&#8217;s odt files are basically just zip files, it&#8217;s still putting zipfiles &#8230; <a href="http://happygiraffe.net/blog/2007/02/13/subverting-word-processors/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t think it&#8217;s unreasonable to want to store my documents in subversion.  But what to do?  Word processors all seem to produce ugly binary documents.  Even though OpenOffice.org&#8217;s odt files are basically just zip files, it&#8217;s still putting zipfiles into your subversion repository.</p>
<p>Why is this a problem?  Because you can&#8217;t see what&#8217;s changed.  And if I make a change in two places, the tool can&#8217;t merge the changes for me.  Not automatically and not without some hassle, anyway.</p>
<p>Having grappled with this a little bit over the last couple of weeks, I&#8217;m coming to the conclusion that the only safe format for storing files in is <a href="http://en.wikipedia.org/wiki/Rich_Text_Format/"><span class="caps">RTF</span></a>.  Thankfully, not only is it plain-text, but it&#8217;s also understood by the vast majority of word processors out there, including the lowly <a href="http://en.wikipedia.org/wiki/TextEdit">TextEdit</a> and <a href="http://en.wikipedia.org/wiki/WordPad">WordPad</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2007/02/13/subverting-word-processors/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>svnmerge</title>
		<link>http://happygiraffe.net/blog/2006/09/05/svnmerge/</link>
		<comments>http://happygiraffe.net/blog/2006/09/05/svnmerge/#comments</comments>
		<pubDate>Tue, 05 Sep 2006 14:07:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[svk]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2006/09/05/svnmerge/</guid>
		<description><![CDATA[I&#8217;ve just found the svnmerge tool. It&#8217;s a real boon if you have to work with branches in subversion. It&#8217;s still not quite as simple to use as svk but it&#8217;s still better than doing things by hand&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just found the <a href="http://www.dellroad.org/svnmerge/">svnmerge</a> tool.  It&#8217;s a real boon if you have to work with branches in subversion.  It&#8217;s still not quite as simple to use as <a href="http://svk.elixus.org/">svk</a> but it&#8217;s still better than doing things by hand&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2006/09/05/svnmerge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Releases</title>
		<link>http://happygiraffe.net/blog/2006/06/05/new-releases/</link>
		<comments>http://happygiraffe.net/blog/2006/06/05/new-releases/#comments</comments>
		<pubDate>Mon, 05 Jun 2006 23:24:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[lint]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2006/06/05/new-releases/</guid>
		<description><![CDATA[I&#8217;ve just done a couple of new releases of my modules: JavaScript::JSLint 0.04, which is just renaming from Lint to JSLint to more accurately reflect where it&#8217;s come from (pointed out by Matthias Miller). subatom 0.07 which switches from the &#8230; <a href="http://happygiraffe.net/blog/2006/06/05/new-releases/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just done a couple of new releases of my modules:</p>
<ul>
<li><a href="http://search.cpan.org/~hdm/JavaScript-JSLint-0.04/">JavaScript::JSLint 0.04</a>, which is just renaming from Lint to JSLint to more accurately reflect where it&#8217;s come from (pointed out by Matthias Miller).</li>
<li><a href="http://search.cpan.org/~hdm/subatom-0.07/">subatom 0.07</a> which switches from the baroque <span class="caps">XML</span>::Atom api to the much nicer <span class="caps">XML</span>::Atom::SimpleFeed (thanks, Aristotle).</li>
<li><a href="http://search.cpan.org/~hdm/subatom-0.08/">subatom 0.08</a> because I am a doofus and left a warn statement in.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2006/06/05/new-releases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typo Upgrade</title>
		<link>http://happygiraffe.net/blog/2006/04/17/typo-upgrade/</link>
		<comments>http://happygiraffe.net/blog/2006/04/17/typo-upgrade/#comments</comments>
		<pubDate>Mon, 17 Apr 2006 14:35:00 +0000</pubDate>
		<dc:creator>Dominic Mitchell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blogs]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[sitemaps]]></category>
		<category><![CDATA[svk]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[typo]]></category>

		<guid isPermaLink="false">http://happygiraffe.net/2006/04/17/typo-upgrade/</guid>
		<description><![CDATA[I&#8217;ve finally bit the bullet and upgraded Typo to the trunk, so I can get everything up to Rails 1.1. Unfortunately, this was quite a painful process&#8230; Normally, I track bits of software I might want to hack on in &#8230; <a href="http://happygiraffe.net/blog/2006/04/17/typo-upgrade/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally bit the bullet and upgraded Typo to the trunk, so I can get everything up to Rails 1.1.  Unfortunately, this was quite a painful process&#8230;</p>
<p>Normally, I track bits of software I might want to hack on in a <a href="http://svnbook.red-bean.com/en/1.0/ch07s04.html">vendor branch</a> in subversion, and use svn_load_dirs.pl to update to new releases.  This works extremely well with wordpress at work, for instance.</p>
<p>Sadly, svn_load_dirs.pl couldn&#8217;t cope with the typo trunk, as a directory got replaced by a symlink.  Ooops.  I tried working around it, but eventually, it was easier to give up and start afresh, redoing the changes I&#8217;d already made in subversion.  I suppose it would have been a lot easier with <a href="http://svk.elixus.org/"><span class="caps">SVK</span></a>.</p>
<p>Unfortunately, a number of things haven&#8217;t caught up with the latest typo changes.  In particular, the origami theme that I was using needs some loving attention.  So it&#8217;s back to the default theme, &#8220;azure&#8221; for the moment, until I can spend some time on it.</p>
<p>Also, I couldn&#8217;t figure out how to make the google sitemaps patch work, so that&#8217;s another &#8220;gone for now&#8221; feature.</p>
<p>Please let me know if you spot anything else&#8230;</p>
<p><strong>Update</strong>: Comments now enabled.  Sorry about that.</p>
<p><strong>Update#2</strong>: I&#8217;ve now fixed the comments feed a bit.  It turns out that one of the migrations missed out on creating guids for all the comments&#8230;</p>
<pre>
  % ruby script/console production
  &gt;&gt; comments = Comment.find_all
  &gt;&gt; comments.reject { |c| c.guid }.each { |c| c.create_guid; c.save }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://happygiraffe.net/blog/2006/04/17/typo-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

