<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Aaron Feng: Subversion is the most pointless project</title>
    <link>http://www.aaronfeng.com/articles/2007/10/26/subversion-is-the-most-pointless-project</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Adventures in software development</description>
    <item>
      <title>Subversion is the most pointless project</title>
      <description>&lt;p&gt;The title is a direct quote from &lt;a href="http://en.wikipedia.org/wiki/Linus_Torvalds"&gt;Linus Torvald's&lt;/a&gt; talk at &lt;a href="http://youtube.com/watch?v=4XpnKHJAok8"&gt;Google&lt;/a&gt;.  Torvald is the creator of the Linux kernel and &lt;a href="http://git.or.cz/"&gt;Git&lt;/a&gt;.  Git is a distributed source control system that is super high performance and reliable.&lt;/p&gt;

&lt;p&gt;Like many developers, Torvald was tired of the complexity of CVS (branching), and 
how it is often cumbersome (merging) to use.  Since the CVS repository is centralized, it requires a network connection for operations like commit which made it not truly offline.  The fact that all the source code lives in one central location also made Torvald uneasy.  The reason he said Subversion is the most pointless project is because Subversion is basically "CVS done right".  Torvald didn't  feel Subversion added any value since CVS was never done right to begin with.   That's why he took two weeks off from Linux kernel project to write Git. &lt;/p&gt;

&lt;p&gt;I had never used Git until I started to play with &lt;a href="http://rubini.us/"&gt;Rubinius&lt;/a&gt;.  Git has been around for a couple of years now, and the most known usuage is with the Linux kernel project.  Git is not like anything else I have seen before. It is partially inspired by BitKeeper[bit].  It's very different and radical compared to the  typical source control system.  After understanding why it is designed that way, it actually makes a lot of sense.  &lt;/p&gt;

&lt;p&gt;Git has no central repository.  In fact, everyone has their own copy of the repository.  Since there is no central repository, all operations are local, even commits.  Local repository also removes any need for permission.  The next logical question is how to propagate out the changes?  It's easy, when someone is ready, he/she will contact you and say "Hey, I just finished feature X, please pull from me."  If you trust this person, you'll "pull" directly from his/her repository. If you are having trouble merging the changes when you are pulling, you can ask the other person to pull from you instead.  Once the changes have been merged you can pull again from that person.  This is how thousands of people can work together in the same code base concurrently without interfering with each other. Lots of people can do the work, but you will only "pull" from people you trust. Distributed repository also makes backing up unnecessary.&lt;/p&gt;

&lt;p&gt;There is a lot more to Git, but this is the 2 second overview of it.  For more information on Git, here is a great &lt;a href="http://www.kernel.org/pub/software/scm/git/docs/tutorial.html"&gt;Git tutorial&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 26 Oct 2007 00:04:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:97b2d661-130e-4012-b029-2b55d9d4743a</guid>
      <author>Aaron Feng</author>
      <link>http://www.aaronfeng.com/articles/2007/10/26/subversion-is-the-most-pointless-project</link>
      <category>tools</category>
    </item>
    <item>
      <title>"Subversion is the most pointless project" by Boz</title>
      <description>&lt;p&gt;"Distributed repository also makes backing up unnecessary"&lt;/p&gt;

&lt;p&gt;What about if all workers are on site and the site burns down ?&lt;/p&gt;</description>
      <pubDate>Wed, 30 Jan 2008 10:58:47 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:d51f4b47-43a0-4e66-96da-0527dc2695b8</guid>
      <link>http://www.aaronfeng.com/articles/2007/10/26/subversion-is-the-most-pointless-project#comment-4333</link>
    </item>
    <item>
      <title>"Subversion is the most pointless project" by rotts</title>
      <description>&lt;p&gt;managers want to spy :)&lt;/p&gt;</description>
      <pubDate>Mon, 26 Nov 2007 13:43:41 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c5c5898a-2eba-411d-bd82-8ed935fe225a</guid>
      <link>http://www.aaronfeng.com/articles/2007/10/26/subversion-is-the-most-pointless-project#comment-4159</link>
    </item>
    <item>
      <title>"Subversion is the most pointless project" by Aaron Feng</title>
      <description>&lt;p&gt;Git is based on Bitkeeper.  Since Bitkeeper is a commercial product, I'm sure some "enterprise shops" are using it.&lt;/p&gt;

&lt;p&gt;Second question is why do managers want a central repo?  So if the server goes down everything has to be backed up (assuming backup exists)?  Or so he can spy on everyone's work?&lt;/p&gt;</description>
      <pubDate>Mon, 26 Nov 2007 09:28:08 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:6316bf78-c394-4e3e-b71c-66e4c92f32cf</guid>
      <link>http://www.aaronfeng.com/articles/2007/10/26/subversion-is-the-most-pointless-project#comment-4158</link>
    </item>
    <item>
      <title>"Subversion is the most pointless project" by rotts</title>
      <description>&lt;p&gt;i don't see git ever working in an enterprise shop, or at least ones that still employ a few dinosaurs that still have not grasped elementary version control concepts.&lt;/p&gt;

&lt;p&gt;Managers want a central repository so they can have metrics and control etc...&lt;/p&gt;</description>
      <pubDate>Wed, 21 Nov 2007 22:59:42 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:628969d3-4967-4754-89b7-b8cf279b6d1b</guid>
      <link>http://www.aaronfeng.com/articles/2007/10/26/subversion-is-the-most-pointless-project#comment-4148</link>
    </item>
  </channel>
</rss>
