<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: When to branch your code</title>
	<atom:link href="http://www.stevideter.com/2008/04/23/when-to-branch-your-code/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stevideter.com/2008/04/23/when-to-branch-your-code/</link>
	<description>Technology, code, and thoughts by Stevi Deter</description>
	<lastBuildDate>Thu, 15 Dec 2011 15:20:14 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Steve</title>
		<link>http://www.stevideter.com/2008/04/23/when-to-branch-your-code/comment-page-1/#comment-17</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Thu, 24 Apr 2008 02:19:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.stevideter.com/2008/04/23/when-to-branch-your-code/#comment-17</guid>
		<description>My experience over the past 10+ years is with the CVS/SVN set. I&#039;ve settled on basically not branching unless necessary with them. For most &quot;move fast, get it done&quot; projects, that means you might have a dev+qa+staging branch and a live branch.

For projects that need more control, you&#039;d have one branch per change request (2d-3w of work), but merge behavior gets murky after dev. QA folks would probably use the change request branch, then it&#039;s merged into a UAT branch for UAT, and then merged into staging to allow eventual launch. This is more pain than the basic branching, but also falls apart if the client changes their minds and wants to launch something different than what was dev&#039;d or uat&#039;d ... or if there are significant changes in UAT.

I&#039;m playing around with git as a different approach. In git, individual commits can be merged separately between branches, so you can easily &quot;rebase&quot; (i.e. bring arbitrary changes from trunk back into a branch) at will, and merge back to trunk, without causing undue conflicts. It could have the effect of having us branch once per change or once per ticket ... we&#039;ll see.</description>
		<content:encoded><![CDATA[<p>My experience over the past 10+ years is with the CVS/SVN set. I&#8217;ve settled on basically not branching unless necessary with them. For most &#8220;move fast, get it done&#8221; projects, that means you might have a dev+qa+staging branch and a live branch.</p>
<p>For projects that need more control, you&#8217;d have one branch per change request (2d-3w of work), but merge behavior gets murky after dev. QA folks would probably use the change request branch, then it&#8217;s merged into a UAT branch for UAT, and then merged into staging to allow eventual launch. This is more pain than the basic branching, but also falls apart if the client changes their minds and wants to launch something different than what was dev&#8217;d or uat&#8217;d &#8230; or if there are significant changes in UAT.</p>
<p>I&#8217;m playing around with git as a different approach. In git, individual commits can be merged separately between branches, so you can easily &#8220;rebase&#8221; (i.e. bring arbitrary changes from trunk back into a branch) at will, and merge back to trunk, without causing undue conflicts. It could have the effect of having us branch once per change or once per ticket &#8230; we&#8217;ll see.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

