subversion-linus.html   [plain text]


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css"> /* <![CDATA[ */
  @import "branding/css/tigris.css";
  @import "branding/css/inst.css";
  /* ]]> */</style>
<link rel="stylesheet" type="text/css" media="print"
  href="branding/css/print.css"/>
<script type="text/javascript" src="branding/scripts/tigris.js"></script>
<title>Please Stop Bugging Linus Torvalds About Subversion</title>
</head>

<body>
<div class="app">

<h2 style="text-align: center">Please Stop Bugging Linus Torvalds About Subversion</h2>

<p>Since Linus Torvalds' <a
href="http://lwn.net/Articles/130681/">decision</a> to stop using
BitKeeper for the Linux kernel&nbsp;&mdash;&nbsp;for licensing
reasons, not technical reasons&nbsp;&mdash;&nbsp;a number of people
have suggested <a href="http://subversion.tigris.org/">Subversion</a>
as a possible replacement version control system.  Linus himself has
said he doesn't want to switch to Subversion, most recently in a
footnote at the end of <a href="http://lwn.net/Articles/130681/"
>http://lwn.net/Articles/130681/</a>.</p>

<p>We, the Subversion development team, would like to explain why we
agree that Subversion would not be the right choice for the Linux
kernel.</p>

<p>Subversion was primarily designed as a replacement for CVS.  It is
a centralized version control system.  It does not support distributed
repositories, nor foreign branching, nor tracking of dependencies
between changesets.  Given the way Linus and the kernel team work,
using patch swapping and decentralized development, Subversion would
simply not be much help.  While Subversion has been well-received by
<a href="http://subversion.tigris.org/testimonials.html">many open
source projects</a>, that doesn't mean it's right for <i>every</i>
project.</p>

<p>Someday, Subversion may have the features Linus needs, but they're
just vaporware until then, and they haven't been our immediate
priorities.  For example, the feature we added most recently (in
response to user demand) was file locking&nbsp;&mdash;&nbsp;not
exactly something the Linux kernel team was clamoring for.  Linus
needs a version control system that supports his working model today,
something like <a href="http://www.venge.net/monotone/">Monotone</a>,
which he mentioned in his post, or <a
href="http://www.gnuarch.org/">GNU&nbsp;Arch</a>, or <a
href="http://svk.elixus.org/">SVK</a> (which implements distributed
functionality on top of Subversion), all of which support at least
some of the features that attracted Linus to BitKeeper in the first
place.</p>

<p>One very positive result of the move away from BitKeeper will be
that people can set up Subversion mirrors of kernel activity without
worrying about conflicts with BitMover, Inc (see <a
href="http://subversion.tigris.org/bitmover-svn.html#licensing"
>http://subversion.tigris.org/bitmover-svn.html#licensing</a> for the
history of that situation).  BitMover Inc has been extremely sensitive
about any attempts to reverse-engineer or duplicate BitKeeper
functionality, and has done its best to prevent open source developers
from implementing BitKeeper-like features in other version control
systems.  We have always found this a disappointing assault on the
freedom of open source programmers, and strongly disagree with Larry
McVoy's claim, quoted at <a href="http://kerneltrap.org/node/4966"
>http://kerneltrap.org/node/4966</a>, that BitMover Inc represents
<i>"as open-source friendly a commercial organization as you are
*ever* going to see"</i>.  We are happy that this situation will be
minimized by the Linux kernel's move away from BitKeeper.</p>

<p>We wish Linus and the kernel team luck in finding a truly free
version control system that supports their model well.  That system
probably won't be Subversion, but at least there won't be any more
obstacles for people who want to set up Subversion mirrors or other
Subversion-based tools for their personal Linux development.</p>

<p><b>-The Subversion Development Team</b></p>

<p>$Date: 2006-10-23 21:20:02 +0000 (Mon, 23 Oct 2006) $</p>
</div>
</body>
</html>