<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Best practise when handling tags and branches (using subversion)</title>
	<atom:link href="http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/</link>
	<description>What I encounter in my software part of life is in danger of being commented upon here</description>
	<pubDate>Thu, 20 Nov 2008 21:31:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Clay McCoy</title>
		<link>http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/#comment-22</link>
		<dc:creator>Clay McCoy</dc:creator>
		<pubDate>Wed, 19 Mar 2008 15:31:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/#comment-22</guid>
		<description>I'm always surprised that the Subversion convention of trunk/tags/branches top level directories is still considered a best practice.  Especially when there is nothing fundamentally different about tags and branches in this case.  They are both just copies that can be committed to.  I'm constantly surprised how few people realize this, and how the Subversion culture enforces this misunderstanding.

The only way to have a true immutable tag is to reference the revision number.  Doing this with svn:externals or piston is a nice way to group specific versions of projects for a release.

So the main Subversion best practice that I recommend is to use revision numbers more.  Use them for tags, since it is the only way to really lock down what you are depending on.  Use them for internal release numbers for similar reasons rather than coming up with an alternate numbering strategy (which I have never seen work).  Use them for your build.  Or use an SCM solution that has real tags and branches (among other advantages) like Git.

I used to work with a guy who didn't understand SCM (even though it was his job).  He would constantly call for code freezes when he wanted to do a release.  He never understood why I would get frustrated with him for expecting the developers to actually stop developing because he didn't understand how to manage the SCM appropriately.</description>
		<content:encoded><![CDATA[<p>I&#8217;m always surprised that the Subversion convention of trunk/tags/branches top level directories is still considered a best practice.  Especially when there is nothing fundamentally different about tags and branches in this case.  They are both just copies that can be committed to.  I&#8217;m constantly surprised how few people realize this, and how the Subversion culture enforces this misunderstanding.</p>
<p>The only way to have a true immutable tag is to reference the revision number.  Doing this with svn:externals or piston is a nice way to group specific versions of projects for a release.</p>
<p>So the main Subversion best practice that I recommend is to use revision numbers more.  Use them for tags, since it is the only way to really lock down what you are depending on.  Use them for internal release numbers for similar reasons rather than coming up with an alternate numbering strategy (which I have never seen work).  Use them for your build.  Or use an SCM solution that has real tags and branches (among other advantages) like Git.</p>
<p>I used to work with a guy who didn&#8217;t understand SCM (even though it was his job).  He would constantly call for code freezes when he wanted to do a release.  He never understood why I would get frustrated with him for expecting the developers to actually stop developing because he didn&#8217;t understand how to manage the SCM appropriately.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bram Bruneel</title>
		<link>http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/#comment-9</link>
		<dc:creator>Bram Bruneel</dc:creator>
		<pubDate>Mon, 17 Mar 2008 11:47:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/#comment-9</guid>
		<description>Hi,

When I release, I branch from the trunk into a &lt;em&gt;major.minor&lt;/em&gt; branch. This way I can adjust my pom.xml in the branch so it has the correct release scm urls and more importanly a correct version id, one without SNAPSHOT. Modifying the pom.xml in a tag is not really clean.

When that is ok I tag (&lt;em&gt;major.minor.bugfix&lt;/em&gt;) from my branch. All bugfixes are then done on my branch or merged into the branch. After one or more fix(es) are in the branch you can tag again.

Regards,
Bram</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>When I release, I branch from the trunk into a <em>major.minor</em> branch. This way I can adjust my pom.xml in the branch so it has the correct release scm urls and more importanly a correct version id, one without SNAPSHOT. Modifying the pom.xml in a tag is not really clean.</p>
<p>When that is ok I tag (<em>major.minor.bugfix</em>) from my branch. All bugfixes are then done on my branch or merged into the branch. After one or more fix(es) are in the branch you can tag again.</p>
<p>Regards,<br />
Bram</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jeyben</title>
		<link>http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/#comment-8</link>
		<dc:creator>jeyben</dc:creator>
		<pubDate>Sun, 16 Mar 2008 07:02:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/#comment-8</guid>
		<description>You are so right. As I write In the section 'branching': &lt;blockquote cite""&gt;... Do so from your release tag.&lt;/blockquote&gt; but my example doesn't match my words. I have corrected it.</description>
		<content:encoded><![CDATA[<p>You are so right. As I write In the section &#8216;branching&#8217;:<br />
<blockquote cite"">&#8230; Do so from your release tag.</p></blockquote>
<p> but my example doesn&#8217;t match my words. I have corrected it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tech Per</title>
		<link>http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/#comment-7</link>
		<dc:creator>Tech Per</dc:creator>
		<pubDate>Sat, 15 Mar 2008 20:25:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.ancientprogramming.com/2008/03/15/best-practise-when-handling-tags-and-branches-using-subversion/#comment-7</guid>
		<description>Good post, I agree with most of it.

The example on branching is not that educational, as it copies from trunk into 1.0-bugfix. It would have been more educational to show copying from the tag 1.0.0 to 1.0-bugfix.</description>
		<content:encoded><![CDATA[<p>Good post, I agree with most of it.</p>
<p>The example on branching is not that educational, as it copies from trunk into 1.0-bugfix. It would have been more educational to show copying from the tag 1.0.0 to 1.0-bugfix.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
