<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx</link><description>Summary Motley: Branches are too complicated. The last thing we need is a copy of the code that has to be maintained in two or more places! Maven: Branches are source code copies with a tie back to a mainline set of code that allow for easy integration</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Click &amp;amp; Solve &amp;raquo;  Motley says: ???Branches are for trees, not source code??? </title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9456971</link><pubDate>Tue, 03 Mar 2009 19:26:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9456971</guid><dc:creator>Click &amp;amp; Solve &amp;raquo;  Motley says: ???Branches are for trees, not source code??? </dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://www.clickandsolve.com/?p=17185"&gt;http://www.clickandsolve.com/?p=17185&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9457463</link><pubDate>Tue, 03 Mar 2009 23:43:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9457463</guid><dc:creator>Lior</dc:creator><description>&lt;p&gt;I must disagree with you (first time for me). For me branches represent pure waste. I try to avoid them as much as I can. I think that raising up standards is a better strategy to avoid main line build issue. (every check in must pass the &amp;quot;quality gate&amp;quot;) &lt;/p&gt;
&lt;p&gt;I've posted about this some time ago (&lt;a rel="nofollow" target="_new" href="http://imistaken.blogspot.com/2008/10/source-branches.html"&gt;http://imistaken.blogspot.com/2008/10/source-branches.html&lt;/a&gt;) &lt;/p&gt;
</description></item><item><title>re: Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9457831</link><pubDate>Wed, 04 Mar 2009 04:35:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9457831</guid><dc:creator>James Waletzky</dc:creator><description>&lt;p&gt;Actually, Lior, I don't think we entirely disagree with each other. Branches are a great solution when used pragmatically. For a small team with a good quality gate definition, I likely wouldn't branch at all. However, for large team development, they can be a good solution.&lt;/p&gt;
&lt;p&gt;I work in an organization that delivers software using the waterfall model (whether I like it or not and whether they admit it or not). Our team, however, follows the agile model and has to fit within the waterfall milestones. To isolate ourselves from the really hefty requirements of checking into mainline, we branch and abide by our own (sometimes stricter) check-in requirements. &lt;/p&gt;
&lt;p&gt;Our requirements may be stricter but not as heavy. Let me explain. The overall organization leverages a continuous integration tool that could add hours of transportation time to get into mainline. We isolate ourselves from this overhead and only do it once when we reverse integrate.&lt;/p&gt;
&lt;p&gt;Additionally, I want management to hold us accountable for results as opposed to process. Branching allows us to put our own processes in place and abide by their process only periodically at RI time. Every team is different, so I can see why they put these hard mainline check-in requirements in place. &lt;/p&gt;
&lt;p&gt;For individual feature work, we want to maintain quality but not necessarily do fully automated test passes. The test team modifies their test suite during feature development, and the branch allows them to isolate their changes from the rest of the team until ready. &lt;/p&gt;
&lt;p&gt;I agree with you that branches CAN represent waste (in terms of effort) when used incorrectly. If you have good reasons to branch, it is a useful tool. However, don't apply this hammer generically to solve all your problems.&lt;/p&gt;
&lt;p&gt;Thanks for commenting, and for a thought-provoking blog posting!&lt;/p&gt;
</description></item><item><title>re: Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9458686</link><pubDate>Wed, 04 Mar 2009 19:45:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9458686</guid><dc:creator>Mark</dc:creator><description>&lt;p&gt;Hi James,&lt;/p&gt;
&lt;p&gt;Interesting post. It reminds me of a post I read at Agile Development Thoughts that takes this to the next level.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://damonpoole.blogspot.com/2008/01/advanced-multi-stage-continous.html"&gt;http://damonpoole.blogspot.com/2008/01/advanced-multi-stage-continous.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have linked to the vendor's web site above. Some very interestint concepts to consider when doing continuous integration or frequent builds.&lt;/p&gt;
&lt;p&gt;Mark&lt;/p&gt;
</description></item><item><title>re: Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9458892</link><pubDate>Wed, 04 Mar 2009 23:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9458892</guid><dc:creator>Starvin Marvin</dc:creator><description>&lt;p&gt;The key is the tools that are being used for branching. &amp;nbsp;The better the tool the less resistance it is to branch and integrate. &amp;nbsp;If a team uses a source control system that uses a poor merge tool and can't be configured to use Araxis or BeyondCompare then branching isn't going to be embraced by developers and testers. &amp;nbsp;A better use of time is to find a better source control system.&lt;/p&gt;
</description></item><item><title>re: Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9458893</link><pubDate>Wed, 04 Mar 2009 23:39:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9458893</guid><dc:creator>Starvin Marvin</dc:creator><description>&lt;p&gt;The key is the tools that are being used for merging the branches. &amp;nbsp;The better the tool the less resistance it is to branch and integrate. &amp;nbsp;If a team uses a source control system that uses a poor merge tool and can't be configured to use Araxis or BeyondCompare then branching isn't going to be embraced by developers and testers. &amp;nbsp;A better use of time is to find a better source control system.&lt;/p&gt;
</description></item><item><title>re: Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9462987</link><pubDate>Fri, 06 Mar 2009 19:19:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9462987</guid><dc:creator>James Waletzky</dc:creator><description>&lt;p&gt;Hey Marvin,&lt;/p&gt;
&lt;p&gt;Agree! A good merge tool makes a lot of difference. I use Beyond Compare myself because we have a license, but have used Araxis Merge in the past and it's great as well.&lt;/p&gt;
&lt;p&gt;Ideally you set up an automated tool that can do most of the automated resolve for you on a daily (or whatever) basis. Then a dev has to step in only to resolve conflicting changes.&lt;/p&gt;
&lt;p&gt;As other posters pointed out (including Mark), continuous integration is a key practice for branching (or otherwise). If you have a good CI system and a small team, branches may not even be necessary. In the event they are used, minimize the levels. One of the article links above went overboard in depth IMHO.&lt;/p&gt;
</description></item><item><title>re: Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9529283</link><pubDate>Thu, 02 Apr 2009 18:15:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9529283</guid><dc:creator>Kevin Dietz</dc:creator><description>&lt;p&gt;MergeMagician is focused on automated merging.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.mergemagician.com"&gt;http://www.mergemagician.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;a href=&amp;quot;&lt;a rel="nofollow" target="_new" href="http://www.mergemagician.com"&gt;http://www.mergemagician.com&lt;/a&gt;&amp;quot;&amp;gt;MergeMagician&amp;lt;/a&amp;gt;&lt;/p&gt;
</description></item><item><title>re: Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9529396</link><pubDate>Thu, 02 Apr 2009 19:44:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9529396</guid><dc:creator>James Waletzky</dc:creator><description>&lt;p&gt;Looks like an interesting tool, Kevin! Thanks for the reference. I'll have to thank them for the blog link too!&lt;/p&gt;
&lt;p&gt;Any idea what source control systems it supports? It wasn't obvious on my quick look at the page and I only say &amp;quot;existing SCM systems&amp;quot;.&lt;/p&gt;
</description></item><item><title>re: Motley says: “Branches are for trees, not source code”</title><link>http://blogs.msdn.com/progressive_development/archive/2009/03/03/motley-says-branches-are-for-trees-not-source-code.aspx#9533199</link><pubDate>Mon, 06 Apr 2009 08:59:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9533199</guid><dc:creator>Kevin Dietz</dc:creator><description>&lt;p&gt;The first version will support Subversion and Team Foundation Server. &amp;nbsp;The next ones after that will probably be Perforce and ClearCase. &amp;nbsp;There is a plug-in architecture planned so that any SCM tool will be able to be supported.&lt;/p&gt;
</description></item></channel></rss>