<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pieceofpy.com &#187; sourcecontrol</title>
	<atom:link href="http://pieceofpy.com/category/sourcecontrol/feed/" rel="self" type="application/rss+xml" />
	<link>http://pieceofpy.com</link>
	<description>Another python blog with a love for agile methods.</description>
	<lastBuildDate>Tue, 18 May 2010 15:31:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>I didn&#8217;t want those changes anyway.</title>
		<link>http://pieceofpy.com/2009/03/12/i-didnt-want-those-changes-anyway/</link>
		<comments>http://pieceofpy.com/2009/03/12/i-didnt-want-those-changes-anyway/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 14:48:21 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[deploy]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[sourcecontrol]]></category>
		<category><![CDATA[hg]]></category>
		<category><![CDATA[oops]]></category>
		<category><![CDATA[source control]]></category>

		<guid isPermaLink="false">http://pieceofpy.com/?p=238</guid>
		<description><![CDATA[I use hg (Mercurial) for version control. Since switching to hg I have adopted the following process. I also do this for my Git projects at work.

I create a local branch to working.
I setup my External Tools in Eclipse to run my test suite.
The output of my test suite gets committed to my local branch.
I [...]]]></description>
			<content:encoded><![CDATA[<p>I use hg (<a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a>) for version control. Since switching to hg I have adopted the following process. I also do this for my Git projects at work.</p>
<ul>
<li>I create a local branch to working.</li>
<li>I setup my External Tools in Eclipse to run my test suite.</li>
<li>The output of my test suite gets committed to my local branch.</li>
<li>I squash the local branch messages when I merge in to master.</li>
<li>I add some insightful commit message for my master commit. Like, I haz changes.</li>
</ul>
<p>So yesterday, I roll up my sleeves and prepare to dive in to an older project that <a href="http://en.wikipedia.org/wiki/Code_smell">smells like rotten potatoes</a>. The plan of attack is to take this project and bring it up-to-date with Python 2.6, Pylons 0.9.7, and SQLalchemy 0.5.2 in the process of doing it, re-factor and extend where needed, of course letting the tests drive. I start my work and wand waving and 2-3 hours in I&#8217;ve removed about 200 lines of cruft and copy paste inheritance extended flexibility by further encapsulating some behavior using the Strategy pattern. I&#8217;ve got 47 tests (including functional doctests) passing and I&#8217;m green bar and happy with my time spent. So now time to merge this baby back in to master.</p>
<p>My test suite external tool performs the hg add . and I keep my .hgignore pretty up-to-date for Python projects, so I feel confident doing that. I open up the terminal to check out the change sets and start the merge and I notice I missed a binary format in my .hgignore. So I now have about 15 unwanted files staged for adding. Being lazy and knowing my last commit was when I just ran my test suite, I blindly run.</p>
<pre class="brush: bash">
$ ^R hg revert &lt;enter&gt; &lt;enter&gt; (Ctrl-R, hg revert - shell previous command search)
$ hg revert -a --no-backup
# ...my work being destroyed because I was lazy and not paying attention
# whimpering
</pre>
<p>It is at this point my day goes from great to awful. I face palm as I watch the uncommitted changes I&#8217;ve been making over the last 3 hours get reverted. As I mentioned, this project was older, in fact, it was started before the migration to hg and I never updated the External Tools runnable for this project in Eclipse to do the new hg add / commits. So every time I thought I was committing when I was running the tests, I was in fact not. Fortunate for me, I did have some buffers open and was able to recover the end result in about 45 minutes of hacking, but I did lose all of my change history which was very very disappointing (not to mention scary).</p>
<p>So if I had any advice after this it would be ensure your older projects are up-to-date with how you do things now and they follow your current development process before you start refactoring. I guess the oneliner could be; When refactoring a project start with the tool set first.</p>
]]></content:encoded>
			<wfw:commentRss>http://pieceofpy.com/2009/03/12/i-didnt-want-those-changes-anyway/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blog themes and SCM.</title>
		<link>http://pieceofpy.com/2008/10/11/blog-themes-and-scm/</link>
		<comments>http://pieceofpy.com/2008/10/11/blog-themes-and-scm/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 18:57:22 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[brainstorm]]></category>
		<category><![CDATA[sourcecontrol]]></category>

		<guid isPermaLink="false">http://pieceofpy.com/?p=174</guid>
		<description><![CDATA[We have a new theme? You like? If not, blame commenter rholmes, it is his fault. Seriously though. In a previous post he brought up a very good point, the site looked like hell if you were browsing with images off. Well this new theme looks better with images off and overall it isn&#8217;t too [...]]]></description>
			<content:encoded><![CDATA[<p>We have a new theme? You like? If not, blame commenter rholmes, it is his fault. Seriously though. In a previous post he brought up a very good point, the site looked like hell if you were browsing with images off. Well this new theme looks better with images off and overall it isn&#8217;t too horribly bad. So, if you don&#8217;t like it, suggest one, just make sure it looks good with images turned off.</p>
<p>Now to the SCM part. After about a week of playing with <a href="https://github.com/">Github</a> and <a href="http://lighthouseapp.com/">Lighthouse</a>, I found them both to be great products. They integrated well with each other and the tools for working with Git are available under every platform. If I didn&#8217;t already have my own server and experience deploying <a href="http://trac.edgewall.org/">Trac</a> and <a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a> I would use both these services without question. That being said, though I have enjoyed my time working with those tools, I&#8217;ve migrated my Github source and Lighthouse tickets over to a newly installed Trac 0.11, full circle.</p>
<p>End result. If you like tinkering. If you like managing your own installations or you have some customization/integration you would like to do, use Trac and Mercurial, otherwise use Github and one of the great ticket systems it integrates with; I enjoyed Lighthouse.</p>
<p>For fun, here is the circle of ticketing and scm life I&#8217;ve gone through over the last 6 years or so.</p>
<ul>
<li>cvs and PHP Ticket</li>
<li>svn and home grown Python tickets</li>
<li>svn and Trac</li>
<li>Github and Lighthouse</li>
<li>mercurial and Trac</li>
</ul>
<p>Have to wonder what is next. A lot of people at work have been asking me why Github or mercurial? Why Wayne? True, that most of the time I am using the repositories for me, myself, and I (De La Soul), but the benefits extend just beyond handling version control for an arbitrary number of developers and clean merges. I&#8217;ll do a write up soon.</p>
<p>All the sourcecode for this site is now located at: http://trac.pieceopfy.com/pieceofpy<br />
I&#8217;ll be updating all the old links through the other posts to reflect this. Fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://pieceofpy.com/2008/10/11/blog-themes-and-scm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
