<?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>Ivan's agile thinkings &#187; Subversion</title>
	<atom:link href="http://ivansthunks.com/blog/category/subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://ivansthunks.com/blog</link>
	<description>My thoughts and opinions on all things agile</description>
	<lastBuildDate>Sat, 02 Jul 2011 20:21:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Git in (mild) anger</title>
		<link>http://ivansthunks.com/blog/2011/07/02/git-in-mild-anger/</link>
		<comments>http://ivansthunks.com/blog/2011/07/02/git-in-mild-anger/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 20:20:55 +0000</pubDate>
		<dc:creator>ivan</dc:creator>
				<category><![CDATA[Configuration management]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://ivansthunks.com/blog/?p=76</guid>
		<description><![CDATA[Last weekend I wasn&#8217;t feeling so good due to a bit of a cold.  As I manage more than I do these days I don&#8217;t often get time to code.  Interestingly I&#8217;ve noticed a bit of a trend that I code more when I&#8217;m feeling ill.  I don&#8217;t really understand it, but as long as [...]]]></description>
			<content:encoded><![CDATA[<p>Last weekend I wasn&#8217;t feeling so good due to a bit of a cold.  As I manage more than I do these days I don&#8217;t often get time to code.  Interestingly I&#8217;ve noticed a bit of a trend that I code more when I&#8217;m feeling ill.  I don&#8217;t really understand it, but as long as my brain is working and my body doesn&#8217;t feel like doing much I suppose it&#8217;s nothing to worry about.</p>
<p>On to the main point of this post.  My company is currently using Subversion as its source control mechanism. I&#8217;m pretty sure I want to change this to something better.  I have the influence and power to be able to enact this change, potentially overnight if I REALLY wanted, but that would be as successful as flying to the moon in a sherbet-powered watermelon.</p>
<p>For a start, I&#8217;m not 100% sure of what &#8216;better&#8217; would be.  We&#8217;ve had a small grass-roots movement trying different types of DCVS for a while.  Basically this meant Mercurial and Git.  Git seems to be winning out at the moment, and its got to be said that the git-svn seems very solid.</p>
<p>I&#8217;ve been tracking svn using git-svn for a while &#8211; I might not &#8216;do&#8217; so much any more, but I know the answers to lots of things and need the code to refer to.  But last weekend was the first time I&#8217;ve used Git in anger.  So, I set about tidying and refactoring a set of unit tests that are horribly coupled to a large chunk of the system &#8211; and are slow because of it.</p>
<p>What a difference Git made to my work-flow!  Edit, compile, re-run tests, COMMIT, edit, compile, re-run tests, COMMIT.  I was committing many, many times more than I ever would have with Subversion.  Even if I had my own Subversion branch to isolate my changes, the time to commit over the network would have stopped me doing it so often.  Git was a breath of fresh air.  Knowing I could just do my work and commit as part of my workflow was very liberating, confidence giving and really quite enjoyable.  At the end of the session, I simply ran &#8216;git svn rebase&#8217; re-ran my tests and &#8216;dcommit&#8217;ed back to Subversion.*</p>
<p>I have a longer term plan to get a GitHub style development system internally at work and this experience has encouraged me tremendously.  So much so that this long-weekend I installed gitorious and gerrit on a VirtualBox VM to give them a test drive.</p>
<p>Anyone else changed from Subversion to Git?  Got any pointers or war stories?</p>
<p>* Actually I got a little help from a colleague to move my changes onto a git branch so then I could merge/squash them before committing. Thanks for the help and learning Mehran.</p>
]]></content:encoded>
			<wfw:commentRss>http://ivansthunks.com/blog/2011/07/02/git-in-mild-anger/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Ultimate Commit Token</title>
		<link>http://ivansthunks.com/blog/2008/04/24/the-ultimate-commit-token/</link>
		<comments>http://ivansthunks.com/blog/2008/04/24/the-ultimate-commit-token/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 02:19:07 +0000</pubDate>
		<dc:creator>ivan</dc:creator>
				<category><![CDATA[Configuration management]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ivansthunks.com/blog/2008/04/24/the-ultimate-commit-token/</guid>
		<description><![CDATA[I&#8217;ve rarely had to use a commit token.  The teams I&#8217;ve worked in generally edit unrelated source items as much as is possible.  Over the years I&#8217;ve read about various amusing items being used as commit tokens: rubber ducks, action figures, hats and little flags, to name a few.  The general idea is that you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve rarely had to use a commit token.  The teams I&#8217;ve worked in generally edit unrelated source items as much as is possible.  Over the years I&#8217;ve read about various amusing items being used as commit tokens: rubber ducks, action figures, hats and little flags, to name a few.  The general idea is that you should physically have the token to be allowed to commit &#8211; meaning there are no updates made to the source repository so your changes will go in cleanly.</p>
<p>It is possible that this could be side-stepped though &#8211; Mr Naughty Committer might pretend to be holding the Pokémon and commit &#8211; how can the source repository be expected to know where Pikachu is at any given moment??</p>
<p>However, one of my colleagues had a great idea the other day &#8211; &#8216;The Ultimate Commit Token&#8221;.  Simply appropriate one of those single use password setups with a single key fob.  You could try borrowing it from your corporate VPN setup &#8211; I&#8217;m sure they wouldn&#8217;t miss it.</p>
<p><a title="The Ultimate Commit Token!" href="http://ivansthunks.com/blog/wp-content/uploads/2008/04/keyfob.gif"></a></p>
<p style="text-align: center;"><a title="The Ultimate Commit Token!" href="http://ivansthunks.com/blog/wp-content/uploads/2008/04/keyfob.gif"><img src="http://ivansthunks.com/blog/wp-content/uploads/2008/04/keyfob.gif" alt="The Ultimate Commit Token!" width="462" height="307" /></a></p>
<p>Wire your pre-commit script into the server-side element and have the fob floating between developers.  Et Voila! One very annoying, yet extremely effective commit token!!!</p>
<p>I know, I know, it&#8217;s not very exotic looking, but fear not!  I reckon it would look natty glued to the back of <a href="http://www.toymania.com/customcorner/cc12/mpb.shtml">Spud Of Nine</a>.</p>
<p><a title="Spud Of Nine" href="http://ivansthunks.com/blog/wp-content/uploads/2008/04/tater_seven.jpg"><img src="http://ivansthunks.com/blog/wp-content/uploads/2008/04/tater_seven.jpg" alt="Spud Of Nine" width="470" height="374" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ivansthunks.com/blog/2008/04/24/the-ultimate-commit-token/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion Change Sets</title>
		<link>http://ivansthunks.com/blog/2008/02/19/subversion-change-sets/</link>
		<comments>http://ivansthunks.com/blog/2008/02/19/subversion-change-sets/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 06:52:20 +0000</pubDate>
		<dc:creator>ivan</dc:creator>
				<category><![CDATA[Configuration management]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://ivanjensen.com/blog/2008/02/19/subversion-change-sets/</guid>
		<description><![CDATA[For some time now I have been looking around for change sets in Subversion, the ability to group files together connect them to issues and commit and track them as sensibly labelled groups with the ability to merge these groups between branches without having to specify individual files. Many years ago when working for a [...]]]></description>
			<content:encoded><![CDATA[<p>For some time now I have been looking around for change sets in Subversion, the ability to group files together connect them to issues and commit and track them as sensibly labelled groups with the ability to merge these groups between branches without having to specify individual files.</p>
<p>Many years ago when working for a telecommunications company in the UK I had the pleasure of using ClearCase and more importantly ClearQuest.  I seem to remember being able to see the files I was changing for any specific issue at a glance.  My job as a build engineer was also made much simpler being able to working with the change set abstraction doing just as I describe above when it came to merging.   So scouting around the interweb I went.</p>
<p>The first interesting thing I hit upon was <a href="http://www.clearvision-cm.com/products/clearquest-subversion-integration.html">clearvision&#8217;s ClearQuest Subversion Integration</a> this seemed a bit like what I was looking for and not too badly priced, except where I work now doesn&#8217;t use ClearQuest and isn&#8217;t about to.  On my search went.</p>
<p>I eventually found <a href="http://blogs.open.collab.net/svn/2007/05/the_subversion__1.html">this page</a> on Auke Jilderda&#8217;s blog which detailed some of the changes coming in Subversion 1.5 to arrive late summer.</p>
<blockquote><p><font color="#999999">Subversion&#8217;s upcoming 1.5 release is scheduled to deliver the core merge tracking feature with subsequent releases likely extending this. Fundamental to all merge tracking related functionality is the functionality to automatically record what change sets have been copied, or merged, where. On top of this, the 1.5 release will deliver the following functionality:</font></p>
<ul>
<li><font color="#999999">Repeated Merge</font></li>
</ul>
<ul>
<li><font color="#999999">Cherry Picking</font></li>
</ul>
<ul>
<li><font color="#999999">Record Manual Merge</font></li>
</ul>
<ul>
<li><font color="#999999">Rollback Merge</font></li>
</ul>
<ul>
<li><font color="#999999">Block/Unblock Change Set</font></li>
</ul>
<ul>
<li><font color="#999999">Automated Merge</font></li>
</ul>
</blockquote>
<p>That sounds pretty much exactly what I was looking for &#8211; and then some <img src='http://ivansthunks.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The first comment on Auke&#8217;s post then led me to the <a href="http://svk.bestpractical.com/">SVK project</a> which also seemed to offer a lot of these types of feature already (as the comment mentions).  I agree with the later response that Subversion could do with these features in its core, rather than in a specific client, particularly as we don&#8217;t currently use that client and we use Eclipse a lot.  SVK is interesting to me for another reason though, its similarity with git.  From the little I understand about git it provides a very different way of thinking about version control which obviously fits the Linux developers quite well.  I recently read something about git and the way it provides a decentralised approach to version control, and providing a new style of file system at the same time.</p>
<p>Along with the Mylyn Eclipse plugin and a few other things I&#8217;ve seen there&#8217;s a lot of fun things going on the configuration management space at the moment.  I&#8217;ll be keeping my eyes peeled and hoping core Subversion change sets arrive early.</p>
]]></content:encoded>
			<wfw:commentRss>http://ivansthunks.com/blog/2008/02/19/subversion-change-sets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

