<?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>lbsa71.net &#187; 0.6.5</title>
	<atom:link href="http://lbsa71.net/tag/065/feed/" rel="self" type="application/rss+xml" />
	<link>http://lbsa71.net</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Wed, 18 Aug 2010 12:20:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>On Revisions, tags and branches</title>
		<link>http://lbsa71.net/2009/05/26/on-revisions-tags-and-branches/</link>
		<comments>http://lbsa71.net/2009/05/26/on-revisions-tags-and-branches/#comments</comments>
		<pubDate>Tue, 26 May 2009 07:45:54 +0000</pubDate>
		<dc:creator>lbsa71</dc:creator>
				<category><![CDATA[OpenSimulator]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[0.6.5]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[versioning]]></category>

		<guid isPermaLink="false">http://lbsa71.net/?p=81</guid>
		<description><![CDATA[In light of some confusion in the wake of the 0.6.5 release of OpenSimulator, I just thought I'd share a couple of good-to-know points about SVN versioning;
In an SVN repo, the 'revision' is a discrete version of the software. But; the revision number is not an indication of sequential functional increment.
Revisions are based on a revision before [...]]]></description>
			<content:encoded><![CDATA[<p>In light of some confusion in the wake of the 0.6.5 release of <a href="http://opensimulator.org">OpenSimulator</a>, I just thought I'd share a couple of good-to-know points about SVN versioning;</p>
<p>In an SVN repo, the 'revision' is a discrete version of the software. But; the revision <em>number</em> is <span style="text-decoration: underline;">not</span> an indication of sequential functional increment.</p>
<p>Revisions are based on a revision before it, but that does not have to be the revision <em>immediately</em> before it.</p>
<p>The revision number counter is global to the svn repository, hence it is upped whenever somebody does something within the repo, regardless of what branch the thing happens to.</p>
<p>An example:</p>
<ul>
<li>I commit something to <em>trunk</em>, the rev number is upped to, say, <strong>1337</strong>, and my new version is given that number.</li>
<li>I now branch trunk into <em>/branches/mybranch</em>. I do this by doing a remote copy of trunk. This copy of trunk, although identical to 1337, is a new version and is thus given the revision number <strong>1338</strong>, the first revision on the new <span style="text-decoration: underline;">branch</span>.</li>
<li>Now I commit a number of changes to trunk, spinning past <strong>1339</strong>, <strong>1340</strong>, <strong>1341</strong> and <strong>1342</strong> - each being separate <span style="text-decoration: underline;">versions</span> but on the <span style="text-decoration: underline;">branch</span> called <em>/trunk</em> (think of it as paths)</li>
</ul>
<p>Now, if I commit some minor change to <em>/branches/mybranch</em>, what revision number will it get? You guessed it - <strong>1343</strong>.</p>
<p>If I now commit something to <em>/trunk</em> again, it will get <strong>1344</strong>. I then commit something to the really really old branch <em>/branches/reallyoldbranch</em> that was based on, say, revision 666. It will now get <strong>1345</strong>.</p>
<p>So, my point is: you should never talk about revision numbers when your're trying to convey an idea of some kind of sequential advancement of state.</p>
<p>Ie, in my example, 1344 is probably the one reflecting the most development, 1343 is essentially based on 1337 and 1345, currently the highest rev number, could basically be six months old, with just a minor modification.</p>
<p>Now on to tags:</p>
<p>Trunk, branches and tags are really all one thing: paths. The only real difference is by convention: there is a certain path called <em>/trunk</em> that serves a certain purpose, namely to be the focal point for developers. There is a certain name used for paths other than trunk, and that is "branches". Some branches <em>by convention</em> aren't meant to be modified, but serve as snapshots of a point in time - they are called "tags".</p>
<p>But to the server, they are all revisions along differerent link paths. There is really nothing stopping you from committing to a tag - it's just the svn client will be reluctant to do so, as it's aware of the convention.</p>
<p>Keep this in mind, when referring to a 'revision' - it might be on a totally different path, so be sure to mention what path you're really talking about. specifying "<em>trunk, between revision 1343 and 1780</em>" or "<em>0.6.2 post-fixes, between revision 1764 and 2006</em>" again lets you compare revision numbers to indicate advancement of state.</p>
<p>Also, don't tell people to check a certain revision out, unless you mean <span style="text-decoration: underline;">exactly</span> that code snapshot. If you want them to check out a certain version, tell them the logical path to it instead.</p>
<p>I hope this has cleared any potential confusion up.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbsa71.net/2009/05/26/on-revisions-tags-and-branches/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
