<?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: Don&#8217;t Break the Build: A Developer&#8217;s Guide to Care-Free Commits</title>
	<atom:link href="http://tasktop.com/blog/mylyn/change-set/feed" rel="self" type="application/rss+xml" />
	<link>http://tasktop.com/blog/mylyn/change-set</link>
	<description>Task-focused productivity for Enterprise Agile ALM</description>
	<lastBuildDate>Sat, 19 May 2012 02:30:03 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: george</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-45934</link>
		<dc:creator>george</dc:creator>
		<pubDate>Mon, 16 Nov 2009 06:27:55 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-45934</guid>
		<description>Nice hat!

Don&#039;t be so hard on yourself. It happens to us all :)</description>
		<content:encoded><![CDATA[<p>Nice hat!</p>
<p>Don&#8217;t be so hard on yourself. It happens to us all <img src='http://tasktop.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pavel Sher</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-45520</link>
		<dc:creator>Pavel Sher</dc:creator>
		<pubDate>Sat, 07 Nov 2009 12:03:11 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-45520</guid>
		<description>Speaking about better continuous integration systems: take a look at TeamCity. It offers pre-tested commit feature to solve the 5 o&#039;clock problem and it does not require decentralized SCM for this: http://www.jetbrains.com/teamcity/delayed_commit.html

Moreover while the build with non-committed changes is running you can modify the same files.</description>
		<content:encoded><![CDATA[<p>Speaking about better continuous integration systems: take a look at TeamCity. It offers pre-tested commit feature to solve the 5 o&#8217;clock problem and it does not require decentralized SCM for this: <a href="http://www.jetbrains.com/teamcity/delayed_commit.html" rel="nofollow">http://www.jetbrains.com/teamcity/delayed_commit.html</a></p>
<p>Moreover while the build with non-committed changes is running you can modify the same files.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SteveC</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-43935</link>
		<dc:creator>SteveC</dc:creator>
		<pubDate>Sun, 11 Oct 2009 00:28:05 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-43935</guid>
		<description>How do you handle the situation in which the code you commit gets compiled on 50 distributions of linux with god knows what compilers?

Still thing breaking the build is a shooting offense?</description>
		<content:encoded><![CDATA[<p>How do you handle the situation in which the code you commit gets compiled on 50 distributions of linux with god knows what compilers?</p>
<p>Still thing breaking the build is a shooting offense?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Shepherd</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-43831</link>
		<dc:creator>David Shepherd</dc:creator>
		<pubDate>Thu, 08 Oct 2009 22:17:53 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-43831</guid>
		<description>I would agree with Ketan and Neil that having uncommitted changes for more than one bug or feature is best avoided.  Unfortunately a lot of developers find themselves forced into this situation on a regular basis, which is why tools like Eclipse and ClearCase UCM provide manual facilities for tracking change sets.  One of the main advantages of Tasktop&#039;s change sets is that Tasktop automatically creates change sets, whereas developers were previously forced to construct them manually.

For those that are lucky enough to have a development process and tools that make it easy to work on one thing at once, you will still get the benefit of the automatic commit comments, automatically generated change sets, etc..  We&#039;ll have more on these further advantages of Tasktop&#039;s change set management in an upcoming post...</description>
		<content:encoded><![CDATA[<p>I would agree with Ketan and Neil that having uncommitted changes for more than one bug or feature is best avoided.  Unfortunately a lot of developers find themselves forced into this situation on a regular basis, which is why tools like Eclipse and ClearCase UCM provide manual facilities for tracking change sets.  One of the main advantages of Tasktop&#8217;s change sets is that Tasktop automatically creates change sets, whereas developers were previously forced to construct them manually.</p>
<p>For those that are lucky enough to have a development process and tools that make it easy to work on one thing at once, you will still get the benefit of the automatic commit comments, automatically generated change sets, etc..  We&#8217;ll have more on these further advantages of Tasktop&#8217;s change set management in an upcoming post&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Neil Bartlett</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-43816</link>
		<dc:creator>Neil Bartlett</dc:creator>
		<pubDate>Thu, 08 Oct 2009 11:22:25 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-43816</guid>
		<description>I&#039;m with the other commenters who feel that working on multiple uncommitted changes, and making partial commits, is wrong and dangerous, no matter how much support Mylyn gives you for tracking changes with respect to tasks.

The problem is that my local build will always see all the changes I have made, irrespective of task, and therefore if I only check in part of those changes there is a substantial risk of breaking the build even when my local build is green.

A better solution is a version control system like Git, that allows quick switching between local branches and ease of merging across those branches.

Oh and another thing, in your bug list snapshot: &quot;British spelling used on homepage&quot; is not a bug, it&#039;s a feature! ;-)</description>
		<content:encoded><![CDATA[<p>I&#8217;m with the other commenters who feel that working on multiple uncommitted changes, and making partial commits, is wrong and dangerous, no matter how much support Mylyn gives you for tracking changes with respect to tasks.</p>
<p>The problem is that my local build will always see all the changes I have made, irrespective of task, and therefore if I only check in part of those changes there is a substantial risk of breaking the build even when my local build is green.</p>
<p>A better solution is a version control system like Git, that allows quick switching between local branches and ease of merging across those branches.</p>
<p>Oh and another thing, in your bug list snapshot: &#8220;British spelling used on homepage&#8221; is not a bug, it&#8217;s a feature! <img src='http://tasktop.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-43810</link>
		<dc:creator>James</dc:creator>
		<pubDate>Thu, 08 Oct 2009 09:17:23 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-43810</guid>
		<description>Great post, and good motivation for people to get on board with Tasktop. 

I presume there&#039;s one case that Tasktop can&#039;t help with. That would be where I&#039;m working on two tasks but both will involve a common class. I&#039;m guessing that by committing from Task1, changes I made to the class while in the context of Task2 will get committed too?  This is the case where the developer needs to use the working memory :-) 

James</description>
		<content:encoded><![CDATA[<p>Great post, and good motivation for people to get on board with Tasktop. </p>
<p>I presume there&#8217;s one case that Tasktop can&#8217;t help with. That would be where I&#8217;m working on two tasks but both will involve a common class. I&#8217;m guessing that by committing from Task1, changes I made to the class while in the context of Task2 will get committed too?  This is the case where the developer needs to use the working memory <img src='http://tasktop.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<p>James</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tamir</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-43798</link>
		<dc:creator>Tamir</dc:creator>
		<pubDate>Thu, 08 Oct 2009 06:31:00 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-43798</guid>
		<description>It sounds interesting. If you plan to support ClearCase soon, you&#039;d better know that it&#039;s much more necessary in Base ClearCase rather than UCM ClearCase. In UCM, you can manage your tasks (activities) quite tightly, and if you integrate your environment with ClearQuest - even more.</description>
		<content:encoded><![CDATA[<p>It sounds interesting. If you plan to support ClearCase soon, you&#8217;d better know that it&#8217;s much more necessary in Base ClearCase rather than UCM ClearCase. In UCM, you can manage your tasks (activities) quite tightly, and if you integrate your environment with ClearQuest &#8211; even more.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ketan Padegaonkar</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-43792</link>
		<dc:creator>Ketan Padegaonkar</dc:creator>
		<pubDate>Thu, 08 Oct 2009 03:41:55 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-43792</guid>
		<description>Developers working on major changes on 5 different things *seems* to be wrong. Working on small chunks that enable developers to check in early, check in often is often a good idea :)

Also DSCM that keeps track of local branches helps heaps in such cases -- it is not always true that 5 features require 5 different sets of files; there would always be something that is common. Git for example allows for me to check in parts of a file into a commit.

Mylyn is a really great way to solve the multitasking issue, and I love this aspect of mylyn when it helps ease switching context -- but working on multiple features at the same time and not checking in into source control seems to be a very wrong thing to do.</description>
		<content:encoded><![CDATA[<p>Developers working on major changes on 5 different things *seems* to be wrong. Working on small chunks that enable developers to check in early, check in often is often a good idea <img src='http://tasktop.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Also DSCM that keeps track of local branches helps heaps in such cases &#8212; it is not always true that 5 features require 5 different sets of files; there would always be something that is common. Git for example allows for me to check in parts of a file into a commit.</p>
<p>Mylyn is a really great way to solve the multitasking issue, and I love this aspect of mylyn when it helps ease switching context &#8212; but working on multiple features at the same time and not checking in into source control seems to be a very wrong thing to do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Shepherd</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-43783</link>
		<dc:creator>David Shepherd</dc:creator>
		<pubDate>Wed, 07 Oct 2009 21:26:50 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-43783</guid>
		<description>Jilles, 
You raise some great points. I totally agree that better version control and continuous integration practices are the right way address the underlying problem of broken builds. Although builds are only one developer&#039;s problem in the scenario you describe, grouping modified files by task still helps developers avoid having their commits rejected from untested. This approach also helps developers know which files to revert or update from tested on a per-task basis when working on several things at once. Keep in mind that the tooling makes the task to file mapping explicit but doesn&#039;t actually enforce work flow. Another way Tasktop and Mylyn can help nip problems in the bud before committing is by quickly running only the JUnit tests that test the code changed as part of a given development task.

Good luck convincing your colleagues to join this century!</description>
		<content:encoded><![CDATA[<p>Jilles,<br />
You raise some great points. I totally agree that better version control and continuous integration practices are the right way address the underlying problem of broken builds. Although builds are only one developer&#8217;s problem in the scenario you describe, grouping modified files by task still helps developers avoid having their commits rejected from untested. This approach also helps developers know which files to revert or update from tested on a per-task basis when working on several things at once. Keep in mind that the tooling makes the task to file mapping explicit but doesn&#8217;t actually enforce work flow. Another way Tasktop and Mylyn can help nip problems in the bud before committing is by quickly running only the JUnit tests that test the code changed as part of a given development task.</p>
<p>Good luck convincing your colleagues to join this century!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jilles van Gurp</title>
		<link>http://tasktop.com/blog/mylyn/change-set/comment-page-1#comment-43777</link>
		<dc:creator>Jilles van Gurp</dc:creator>
		<pubDate>Wed, 07 Oct 2009 17:12:17 +0000</pubDate>
		<guid isPermaLink="false">http://tasktop.com/blog/?p=1093#comment-43777</guid>
		<description>The real, underlying problem that needs addressing here is better addressed by continuous integration and decentralized version management systems.

The problem is inherent to any kind of centralized repository where people can just dump any change. Fact: people make mistakes. Without control, that leads to broken builds. Bureaucracy (do this or that or you get to where the stupid hat) or tools that automate parts of the bureaucracy are not a real solution, they just address the symptoms. Worse Bureaucracy is a workaround. It&#039;s inefficient. It&#039;s annoying, it takes time. You constantly have to &#039;educate&#039; people about it. Lazyness is a sign of intelligence, something to value. Tools that allow intelligent people to relax and be lazy are good.

With decentralized version management, committing changes from push to pull. So if you set up some continuous integration server that pulls changes from a untested repository (or some email server), that tests the changes and pushes them to a tested repository, this problem is solved. You commit/email your changes to untested. Nobody but the integration server pulls from there. Only changes that pass compilation + unit tests get pushed to tested. Failing changes are rejected and automatically removed from untested. Everybody pulls changes from tested that have passed the test suite and are guaranteed to compile. Always. You break untested, it&#039;s your problem: as it should be.  

You can layer this of course and insert more repositories with more and more checks and balances between them. Great for scaling up development to multiple teams.

Now if I&#039;d only be able to convince my colleagues to ditch their 20th century version control technology and move their ass into this century ...</description>
		<content:encoded><![CDATA[<p>The real, underlying problem that needs addressing here is better addressed by continuous integration and decentralized version management systems.</p>
<p>The problem is inherent to any kind of centralized repository where people can just dump any change. Fact: people make mistakes. Without control, that leads to broken builds. Bureaucracy (do this or that or you get to where the stupid hat) or tools that automate parts of the bureaucracy are not a real solution, they just address the symptoms. Worse Bureaucracy is a workaround. It&#8217;s inefficient. It&#8217;s annoying, it takes time. You constantly have to &#8216;educate&#8217; people about it. Lazyness is a sign of intelligence, something to value. Tools that allow intelligent people to relax and be lazy are good.</p>
<p>With decentralized version management, committing changes from push to pull. So if you set up some continuous integration server that pulls changes from a untested repository (or some email server), that tests the changes and pushes them to a tested repository, this problem is solved. You commit/email your changes to untested. Nobody but the integration server pulls from there. Only changes that pass compilation + unit tests get pushed to tested. Failing changes are rejected and automatically removed from untested. Everybody pulls changes from tested that have passed the test suite and are guaranteed to compile. Always. You break untested, it&#8217;s your problem: as it should be.  </p>
<p>You can layer this of course and insert more repositories with more and more checks and balances between them. Great for scaling up development to multiple teams.</p>
<p>Now if I&#8217;d only be able to convince my colleagues to ditch their 20th century version control technology and move their ass into this century &#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

