<?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>榆树网 &#187; Git</title>
	<atom:link href="http://www.wenzk.com/archives/tag/git/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wenzk.com</link>
	<description>http://www.wenzk.com</description>
	<lastBuildDate>Thu, 09 Feb 2012 07:57:28 +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>Subversion or Git</title>
		<link>http://www.wenzk.com/archives/498</link>
		<comments>http://www.wenzk.com/archives/498#comments</comments>
		<pubDate>Mon, 28 Dec 2009 01:21:38 +0000</pubDate>
		<dc:creator>ELM</dc:creator>
				<category><![CDATA[榆树网-杂项]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[比较]]></category>

		<guid isPermaLink="false">http://www.wenzk.com/?p=498</guid>
		<description><![CDATA[There’s been a lot of ambient (and not so ambient) noise in the geeky corners where I often linger about Git. There seems to be some sort of mass exodus underway as folks indicate that they have, or are planning to, move away from Subversion for their source control needs and I have to admit [...]]]></description>
			<content:encoded><![CDATA[<p>There’s been a lot of ambient (and not so ambient) noise in the  geeky corners where I often linger about <a href="http://git.or.cz/">Git</a>.   There seems to be some sort of mass exodus underway as folks indicate  that they have, or are planning to, move away from <a href="http://subversion.tigris.org/">Subversion</a> for their source  control needs and I have to admit that I’m feeling a little ignorant.</p>
<p><span id="more-498"></span>I haven’t used Git (yet?), but I’ve been doing some reading and I  still don’t quite understand the infatuation.  Don’t get me wrong, it  looks like there are some nice features, but at what cost?</p>
<p>The key difference between the two systems seems to be the model  itself.  Where Subversion offers a centralized model, Git provides a  decentralized model.  At the risk of over simplification, this means  that Git offers each developer their very own, fully autonomous copy of  the <em>entire</em> repository.  With Subversion, each developer has  their own working copy, but commits changes to a single, central  repository.</p>
<p>The arguments in favor of the decentralized approach, as I  understand them, include:</p>
<h3>Speed</h3>
<p>Okay, I like speed.  Since each developer has a local copy of the  entire repository, fundamental actions like diff, commit, etc. are all  local.  That’s always going to be faster.  Fast is good.</p>
<p>That said, server interaction with Subversion isn’t exactly  excessive.  Developers work in local working directories and only  interact with the server in short bursts.  I’ve never found myself  thinking, “Great Scott, this is unbearably slow.”  For me, at least,  this seems like a fix for something that isn’t broken.</p>
<h3>Smaller Space Requirement</h3>
<p>A Subversion working directory contains two copies of the entire  code base.  One that is actually being worked on and another tucked away  in the .svn directory.  I remember  reading somewhere that the Mozilla repository required ~12Gb of storage  in Subversion and ~420Mb in Git.</p>
<p>This is a substantial difference, to be sure, but there’s a phrase  that <em>everyone</em> in technology hears on a daily basis: <cite>storage  is cheap.</cite> That can’t be a compelling argument for one problem  and not for another, so I don’t think this difference is one that’s  going to precipitate a switch all by itself.</p>
<h3>Line Ending Conversion</h3>
<p>This is an important factor for mixed environment teams.  Evidently  early versions of Git made no changes and more recent version handle the  conversion automatically.  That decisioning is manual with Subversion,  but is spectacularly easy to do by making a simple change to ~/.subversion/config for each file extension  impacted to specify the line ending desired:</p>
<p><code>*.sh = svn:eol-style=LF;</code></p>
<h3>Other Concerns</h3>
<p>In addition to the fact that none of the arguments presented in  favor of Git are particularly compelling to me, at least not the way I  understand them, I have a few other concerns about the decentralized  model.  Actually, they probably all roll up to a single concern –  accountability.</p>
<p>Every project I’ve worked on requires some level of immediate or  semi-immediate accountability.  A project manager who needs to ensure  that an appropriate amount of progress has been made against the project  plan, a boss who needs to spot review code or maybe a continuous  integration process that needs regular repository updates so that its  not just rebuilding the same old thing.</p>
<p>It seems like the decentralization of the repository would hamper  those efforts.  Sure, it can be done, but it would have to be done with  process.</p>
<p>I also wonder if, in a team environment, having too many people  doing too much of their own thing for intervals that stretch too long  would make effective merges all but impossible.  It seems like it would.</p>
<p>Am I missing something?  Are there additional benefits?  Is there  anything else I haven’t even mentioned that I should be considering?   I’d love to hear from other source control users who have moved to Git  from Subversion.</p>
<p>From: http://robwilkerson.org/2008/04/05/subversion-or-git/</p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li><a href="http://www.wenzk.com/archives/527" title="浅谈FreeBSD与OpenBSD">浅谈FreeBSD与OpenBSD</a> (3)</li><li><a href="http://www.wenzk.com/archives/470" title="解决：Can&#8217;t open file &#8216;/root/.subversion/servers&#8217;:  Permission denied错误">解决：Can&#8217;t open file &#8216;/root/.subversion/servers&#8217;:  Permission denied错误</a> (0)</li><li><a href="http://www.wenzk.com/archives/461" title=" Path-Based Authorization by mod_authz_svn"> Path-Based Authorization by mod_authz_svn</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wenzk.com/archives/498/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

