<?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>Joe Maller &#187; development</title>
	<atom:link href="http://joemaller.com/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://joemaller.com</link>
	<description>.com</description>
	<lastBuildDate>Tue, 15 May 2012 03:40:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Switching to Git</title>
		<link>http://joemaller.com/907/switching-to-git/</link>
		<comments>http://joemaller.com/907/switching-to-git/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 04:35:52 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[misc.]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://joemaller.com/?p=907</guid>
		<description><![CDATA[I resisted Git for a long time. It seemed a cultish thing with devout vocal followers and frequent mentions on Digg. I figured it would probably be a passing fad. I was wrong. I drank the Kool-Aid and damn, it was tasty. The first important thing to realize, especially when starting out and considering switching, [...]]]></description>
			<content:encoded><![CDATA[<p>I resisted Git for a long time. It seemed a cultish thing with devout vocal followers and frequent mentions on Digg. I figured it would probably be a passing fad. I was wrong.</p>
<p>I drank the Kool-Aid and damn, it was tasty.</p>
<p>The first important thing to realize, especially when starting out and considering switching, is that <strong>Git works with existing Subversion repositories</strong>. That means the transition can be as simple as learning a few new commands, your repositories and servers don&#8217;t need to changing. Other team members don&#8217;t need to switch. If I had any other team members, this would be huge. </p>
<p>Of course, once you start using Git and see its potential, you&#8217;ll probably switch everything, convert your repositories and feel superior whenever you have to work with a Subversion hosted project.</p>
<p>Ultimately, Git is a revision control system and is fundamentally about preserving and protecting your working history. So feel free to experiment, it&#8217;s really hard to mess up.</p>
<p>It took me an afternoon to grasp the basic concepts of Git, or at least enough to use it in dumb-SVN mode. After about a week, I started to feel fairly comfortable.</p>
<p>I read a small mountain of weblog posts, documentation and the like, here are the ones I found most valuable:</p>
<ul>
<li><a href='http://cworth.org/hgbook-git/tour/'>A tour of git: the basics</a><br />
Carl Worth&#8217;s port of Bryan O&#8217;Sullivan&#8217;s Mercurial book</li>
<li><a href='http://tsunanet.blogspot.com/2007/07/learning-git-svn-in-5min.html'>Learning git-svn in 5min</a></li>
<li><a href='http://maymay.net/blog/2008/03/26/howto-use-git-for-personal-development-when-everyone-else-is-using-subversion-part-1/'>HowTo: Use git for personal development when everyone else is using Subversion Part 1</a> and <a href='http://maymay.net/blog/2008/03/28/howto-use-git-for-personal-development-when-everyone-else-is-using-subversion-part-2/'>Part 2</a></li>
<li><a href='http://quirkygba.blogspot.com/2007/10/using-git-with-google-code-hosting.html'>Using Git with Google Code Hosting</a><br />A good overview for working with any Subversion repository.</li>
<li><a href='http://www.bluishcoder.co.nz/2007/09/how-to-publish-git-repository.html'>Bluish Coder: How to publish a Git repository</a> Some good ideas about publishing repositories</li>
<li><a href='http://jonas.nitro.dk/git/quick-reference.html'>Git Quick Reference</a></li>
<li>Fraser Speirs wrote this while <a href="http://speirs.org/2007/07/19/a-subversion-user-looks-at-git/">considering switching from SVN to Git</a></li>
<li><a href="http://www.friday.com/bbum/2007/07/19/git-will-eat-subversions-lunch/">Git will eat Subversion’s Lunch</a> by Bill Bumgarner</li>
</ul>
<p>And definitely watch <a href="http://www.youtube.com/watch?v=4XpnKHJAok8">Linus Torvalds&#8217; Google talk about Git</a>. It won&#8217;t tell you how to use Git, but he&#8217;s funny and the talk worth seeing.</p>
<h3>Getting Git</h3>
<ul>
<li><a href="http://code.google.com/p/git-osx-installer/downloads/list?can=3">Mac OS X Installation Binaries</a> (<a href="http://git.or.cz/#download">other OS&#8217;s</a> too)</li>
<li>And of course, TextMate support:  <a href='http://blog.macromates.com/2008/git-bundle/'>Git Bundle</a></li>
</ul>
<p>While Git itself is easy to compile from source, getting the documentation manpages built on Mac OS X Leopard is <a href="http://rails.wincent.com/wiki/Setting_up_the_Git_documentation_build_chain_on_Mac_OS_X_Leopard">a pain in the butt</a>. I futzed around with it a little, but gave up halfway through installing a seemingly endless line of dependencies. The Mac binary installer works perfectly well and is kept up to date. I&#8217;d rather spend my time using Git than installing it.</p>
<h3>Using Git</h3>
<p>I was blown away by some of the stuff Git can do. </p>
<p>In the Google talk Linus pointed out how all SCM packages could do branching and branching wasn&#8217;t a problem. Merging was. <a href="http://twitter.com/joemaller/statuses/817765239">Merging branches with Git is leprechauns and unicorns</a>. It&#8217;s almost too easy. After a few days I found myself branching all over the place, constantly creating new branches to test any idea I was having. Folding those branches back in was almost always quick and painless.</p>
<p>Interactive line-by-line commits mean it&#8217;s possible to commit single lines from a file instead of the whole thing. This is great if you happen to go off on a bender and change a zillion different things between commits. </p>
<p>Cherry-picking is also great, and saved my butt when I created a pretzel of branch history. Using git-cherry-pick I was able to straighten out my history completely within Git using Git&#8217;s tools with no loss of work.</p>
<h3>Conclusion</h3>
<p>I started writing this post at the end of May, it&#8217;s now early July and I&#8217;ve been using Git for a few months with no regrets. The only time I hold my breath is when I&#8217;m pushing changes back to SVN, though it hasn&#8217;t glitched on me since early June. The speed and flexibility of Git are a constant pleasure to work with. The pain of merging branches, which used to take entire afternoons with SVN, has almost become an afterthought.</p>
]]></content:encoded>
			<wfw:commentRss>http://joemaller.com/907/switching-to-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching 3/7 queries in 0.003 seconds using disk: basic
Object Caching 222/226 objects using disk: basic

Served from: joemaller.com @ 2012-05-23 19:45:14 -->
