<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Developing in branches, releasing from trunk</title>
	<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/</link>
	<description>Mumbling about software</description>
	<pubDate>Thu, 11 Mar 2010 03:26:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
		<item>
		<title>By: Yannis</title>
		<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-274</link>
		<dc:creator>Yannis</dc:creator>
		<pubDate>Tue, 30 Sep 2008 16:03:03 +0000</pubDate>
		<guid>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-274</guid>
		<description>I can see the point of the process if you say the business needs separation and visibility of features developed, but I think it's going to cause you problems when it's time to merge - and as you point out it will make major refactoring an impossibility. I really like development done on trunk, because then I know that there is something that works. What you describe means different versions of the software with slightly different features that work, but may end up being very difficult to manage.

Let us know how it goes!</description>
		<content:encoded><![CDATA[<p>I can see the point of the process if you say the business needs separation and visibility of features developed, but I think it&#8217;s going to cause you problems when it&#8217;s time to merge - and as you point out it will make major refactoring an impossibility. I really like development done on trunk, because then I know that there is something that works. What you describe means different versions of the software with slightly different features that work, but may end up being very difficult to manage.</p>
<p>Let us know how it goes!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Developing in streams, releasing from streams &#171; Software Configuration Management</title>
		<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-273</link>
		<dc:creator>Developing in streams, releasing from streams &#171; Software Configuration Management</dc:creator>
		<pubDate>Thu, 25 Sep 2008 17:26:57 +0000</pubDate>
		<guid>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-273</guid>
		<description>[...] I read the following blog, Developing in branches, releasing from trunk about a software configuration management development process that was constrained and [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] I read the following blog, Developing in branches, releasing from trunk about a software configuration management development process that was constrained and [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rags</title>
		<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-272</link>
		<dc:creator>Rags</dc:creator>
		<pubDate>Tue, 16 Sep 2008 12:35:54 +0000</pubDate>
		<guid>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-272</guid>
		<description>That makes sense - especially the bit about choosing at the end which features go into the release.</description>
		<content:encoded><![CDATA[<p>That makes sense - especially the bit about choosing at the end which features go into the release.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: znachor</title>
		<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-271</link>
		<dc:creator>znachor</dc:creator>
		<pubDate>Mon, 15 Sep 2008 17:02:20 +0000</pubDate>
		<guid>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-271</guid>
		<description>Rags, the dependent tickets would be grouped by creating a new parent ticket and assigning all the children tickets to that. I can sort of see now why it is so important to separate different coding streams. It is more business requirement than a good software engineering practice. It happens quite often that a given feature is withdrawn just before release or a work on separate features is done in parallel and then decision which feature are going to be released happens last minute. Then the way with multiple branches merged into release branch sounds reasonable. Of course if we don't count the "merging hell"!</description>
		<content:encoded><![CDATA[<p>Rags, the dependent tickets would be grouped by creating a new parent ticket and assigning all the children tickets to that. I can sort of see now why it is so important to separate different coding streams. It is more business requirement than a good software engineering practice. It happens quite often that a given feature is withdrawn just before release or a work on separate features is done in parallel and then decision which feature are going to be released happens last minute. Then the way with multiple branches merged into release branch sounds reasonable. Of course if we don&#8217;t count the &#8220;merging hell&#8221;!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rags</title>
		<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-270</link>
		<dc:creator>Rags</dc:creator>
		<pubDate>Mon, 15 Sep 2008 13:54:10 +0000</pubDate>
		<guid>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-270</guid>
		<description>Have a look at http://weblogs.java.net/blog/tball/archive/2008/09/distributed_scm.html as well. 
Also have a look at Mercurial for a distributed source control system which is good with merging (or so I've heard).</description>
		<content:encoded><![CDATA[<p>Have a look at <a href="http://weblogs.java.net/blog/tball/archive/2008/09/distributed_scm.html" rel="nofollow">http://weblogs.java.net/blog/tball/archive/2008/09/distributed_scm.html</a> as well.<br />
Also have a look at Mercurial for a distributed source control system which is good with merging (or so I&#8217;ve heard).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rags</title>
		<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-269</link>
		<dc:creator>Rags</dc:creator>
		<pubDate>Mon, 15 Sep 2008 13:42:54 +0000</pubDate>
		<guid>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-269</guid>
		<description>Why can't you just create your release branch at development time, point your CI build to it and everybody check in there? There is no real "Continuous Integration" to be performed at the end of the development cycle anyway, after everyone's branches have been merged together. You are only trying to "fix" your build at that point in time. If you had one common development branch, then the stated problem with refactoring is also a non-issue.

How do you handle different tickets where one ticket depends on the functionality provided by another ticket? Do they get clumped together on the same branch?</description>
		<content:encoded><![CDATA[<p>Why can&#8217;t you just create your release branch at development time, point your CI build to it and everybody check in there? There is no real &#8220;Continuous Integration&#8221; to be performed at the end of the development cycle anyway, after everyone&#8217;s branches have been merged together. You are only trying to &#8220;fix&#8221; your build at that point in time. If you had one common development branch, then the stated problem with refactoring is also a non-issue.</p>
<p>How do you handle different tickets where one ticket depends on the functionality provided by another ticket? Do they get clumped together on the same branch?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Julian Simpson</title>
		<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-268</link>
		<dc:creator>Julian Simpson</dc:creator>
		<pubDate>Sun, 14 Sep 2008 10:02:21 +0000</pubDate>
		<guid>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-268</guid>
		<description>I like the idea of being able to reconcile JIRA tickets with the code in the branch, but my gut feeling is that you'd have some serious merge pain if each feature gets developed in a private branch.  The classic CI approach of doing the bulk of development in the trunk and then branching for each release has the advantage of little merges and constant integration( see http://www.build-doctor.com/2008/09/branching-do-it-like-this-and-nobody.html).

I'm trying to convince the developers to use Perforce jobs at my work.  Then we just need to reconcile those to a Rally story and we can see what features ended up in a release.</description>
		<content:encoded><![CDATA[<p>I like the idea of being able to reconcile JIRA tickets with the code in the branch, but my gut feeling is that you&#8217;d have some serious merge pain if each feature gets developed in a private branch.  The classic CI approach of doing the bulk of development in the trunk and then branching for each release has the advantage of little merges and constant integration( see <a href="http://www.build-doctor.com/2008/09/branching-do-it-like-this-and-nobody.html" rel="nofollow">http://www.build-doctor.com/2008/09/branching-do-it-like-this-and-nobody.html</a>).</p>
<p>I&#8217;m trying to convince the developers to use Perforce jobs at my work.  Then we just need to reconcile those to a Rally story and we can see what features ended up in a release.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robbie</title>
		<link>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-267</link>
		<dc:creator>Robbie</dc:creator>
		<pubDate>Fri, 12 Sep 2008 20:48:48 +0000</pubDate>
		<guid>http://www.woloszyn.org/2008/09/12/developing-in-branches-releasing-from-trunk/#comment-267</guid>
		<description>I think you'd call how we work in our group, optimistic check-ins.  The trunk should always be in a releasable state, meaning a good build.  However, we consider it worth the risk of breaking the build to check into the trunk.  This may be a result of the longer release cycles, but I'm quite happy to work this way.</description>
		<content:encoded><![CDATA[<p>I think you&#8217;d call how we work in our group, optimistic check-ins.  The trunk should always be in a releasable state, meaning a good build.  However, we consider it worth the risk of breaking the build to check into the trunk.  This may be a result of the longer release cycles, but I&#8217;m quite happy to work this way.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
