<?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: Pre-Commit Code Review in MarkUs Development</title>
	<atom:link href="http://mikeconley.ca/blog/2010/02/02/pre-commit-code-review-in-markus-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikeconley.ca/blog/2010/02/02/pre-commit-code-review-in-markus-development/</link>
	<description>The personal blog of a Toronto based software developer, musician, sound designer, and theatre enthusiast.</description>
	<lastBuildDate>Tue, 24 Jan 2012 15:00:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Jesse Gibbs</title>
		<link>http://mikeconley.ca/blog/2010/02/02/pre-commit-code-review-in-markus-development/comment-page-1/#comment-824</link>
		<dc:creator>Jesse Gibbs</dc:creator>
		<pubDate>Tue, 09 Feb 2010 02:32:25 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=977#comment-824</guid>
		<description>This is a very interesting post.  I think that DVCS such as Git and Mercurial could address a few of the issues highlighted here, namely:

Check in early, check in often:  With a DVCS, you can check-in to your personal or a topic branch, but you don&#039;t necessarily have to merge the changes into your main trunk (the &#039;one source of truth&#039; from which you actually release software).  If developers are able to initiate and perform code reviews from personal/topic branches, then they can avoid &#039;polluting&#039; the trunk with unreviewed code, and also be confident that their changes will not be lost due to an errant edit on their local copy.

Lack of working code:  Intelligent use of DVCS should allow the reviewer to look at an actual working copy of the code under review, since they can access the changes in other personal/topic branches, and are not strictly limited to pulling code from the trunk.

I suspect that if usage of DVCS becomes really widespread, we might see &#039;pre-commit reviews&#039; and &#039;pre-commit builds&#039; replaced by DVCS-enabled processes that involve multiple stages of build, test and code review before a change is merged into the primary trunk from which releases are created.  An example workflow could be:

Make a change --&gt; Commit to personal/topic branch --&gt; Compile/test based on branch  --&gt; Peer code review on personal/topic branch --&gt; Commit to trunk for release

The number of steps between committing a change to a personal/topic branch and inclusion of that change into the &#039;trunk&#039; is arbitrary, and allows teams to be as rigorous as they want about maintaining the tidiness of trunk without preventing changes from being committed into some form of version control.

Thoughts?</description>
		<content:encoded><![CDATA[<p>This is a very interesting post.  I think that DVCS such as Git and Mercurial could address a few of the issues highlighted here, namely:</p>
<p>Check in early, check in often:  With a DVCS, you can check-in to your personal or a topic branch, but you don&#8217;t necessarily have to merge the changes into your main trunk (the &#8216;one source of truth&#8217; from which you actually release software).  If developers are able to initiate and perform code reviews from personal/topic branches, then they can avoid &#8216;polluting&#8217; the trunk with unreviewed code, and also be confident that their changes will not be lost due to an errant edit on their local copy.</p>
<p>Lack of working code:  Intelligent use of DVCS should allow the reviewer to look at an actual working copy of the code under review, since they can access the changes in other personal/topic branches, and are not strictly limited to pulling code from the trunk.</p>
<p>I suspect that if usage of DVCS becomes really widespread, we might see &#8216;pre-commit reviews&#8217; and &#8216;pre-commit builds&#8217; replaced by DVCS-enabled processes that involve multiple stages of build, test and code review before a change is merged into the primary trunk from which releases are created.  An example workflow could be:</p>
<p>Make a change &#8211;&gt; Commit to personal/topic branch &#8211;&gt; Compile/test based on branch  &#8211;&gt; Peer code review on personal/topic branch &#8211;&gt; Commit to trunk for release</p>
<p>The number of steps between committing a change to a personal/topic branch and inclusion of that change into the &#8216;trunk&#8217; is arbitrary, and allows teams to be as rigorous as they want about maintaining the tidiness of trunk without preventing changes from being committed into some form of version control.</p>
<p>Thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Feb. 5th Status Update at MarkUs Blog</title>
		<link>http://mikeconley.ca/blog/2010/02/02/pre-commit-code-review-in-markus-development/comment-page-1/#comment-777</link>
		<dc:creator>Feb. 5th Status Update at MarkUs Blog</dc:creator>
		<pubDate>Fri, 05 Feb 2010 05:53:45 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=977#comment-777</guid>
		<description>[...] a handy-dandy script that lets me test drive diffs-for-review quickly and easily. See http://mikeconley.ca/blog/2010/02/02/pre-commit-code-review-in-markus-development/ towards the bottom. I&#8217;m going to polish this tool up and upload it somewhere if people are [...]</description>
		<content:encoded><![CDATA[<p>[...] a handy-dandy script that lets me test drive diffs-for-review quickly and easily. See <a href="http://mikeconley.ca/blog/2010/02/02/pre-commit-code-review-in-markus-development/" rel="nofollow">http://mikeconley.ca/blog/2010/02/02/pre-commit-code-review-in-markus-development/</a> towards the bottom. I&#8217;m going to polish this tool up and upload it somewhere if people are [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe Wright</title>
		<link>http://mikeconley.ca/blog/2010/02/02/pre-commit-code-review-in-markus-development/comment-page-1/#comment-766</link>
		<dc:creator>Joe Wright</dc:creator>
		<pubDate>Wed, 03 Feb 2010 15:03:58 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=977#comment-766</guid>
		<description>Hi Mike,

This sounds like a good feedback loop you&#039;ve introduced to your environment.  I&#039;m glad to hear of it&#039;s successful adoption.

We get around the checking broken code into the repo problem by using &quot;pre-tested commits&quot; in TeamCity:
http://www.jetbrains.com/teamcity/delayed_commit.html

I&#039;m seeing some parallels with testing branches and the approach you&#039;ve taken, developers can cheaply branch the mainline and put their experimental code into SCM for review.  Especially with distributed SCM where we are all encouraged to branch liberally.</description>
		<content:encoded><![CDATA[<p>Hi Mike,</p>
<p>This sounds like a good feedback loop you&#8217;ve introduced to your environment.  I&#8217;m glad to hear of it&#8217;s successful adoption.</p>
<p>We get around the checking broken code into the repo problem by using &#8220;pre-tested commits&#8221; in TeamCity:<br />
<a href="http://www.jetbrains.com/teamcity/delayed_commit.html" rel="nofollow">http://www.jetbrains.com/teamcity/delayed_commit.html</a></p>
<p>I&#8217;m seeing some parallels with testing branches and the approach you&#8217;ve taken, developers can cheaply branch the mainline and put their experimental code into SCM for review.  Especially with distributed SCM where we are all encouraged to branch liberally.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

