<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.0.10">
  <TITLE>Version Control Upgrade?</TITLE>
</HEAD>
<BODY>
<TT>LLVMers,<BR>
<BR>
The oversight group has been kicking around the idea of getting a better version control system than CVS. The problem is, we're not quite sure what "better" means. So, we thought we'd ask your opinions.<BR>
<BR>
If you're interested in this topic (and you should be if you're actively developing), please have a look at this site: <A HREF="http://better-scm.berlios.de/comparison/comparison.html#move"><U>http://better-scm.berlios.de/comparison/comparison.html</U></A> It has quite a nice comparison of key features that we're interested in. Some of the features we think are important are shown in the list below. The text in square brackets is the corresponding item at the comparison site. <BR>
<BR>
<UL>
    <LI>[Atomic Commit] - all changed files in a change set get committed or none of them do. 
    <LI>[Repository Permissions] - control read/write access to the repository on a per-user basis, preferably allowing the authentication to be hooked into an apache server (like mod_webdav). 
    <LI>[Files and Directories Moves or Renames] - make sure moves and renames of both files and directories are tracked as well as edits. 
    <LI>[Remote Repository Replication] - ability to clone a repository and "take it with you" so you can commit changes while disconnected from the network. This supports distributed development. 
    <LI>[Change set support]. Groups together related changes in multiple files as a logical "change set". This helps when you need to back out (revert) a change or the change needs to be propagated to another repository because all the related changes are managed as a group. 
    <LI>[Tracking Line-wise File History] - basically support stuff like cvs annotate to see who modified the file and when on a line-by-line basis. 
</UL>
<BR>
Of the tools available, it seems that only subversion, arch, and monotone are suitable for our purposes. But, we'd love to hear your thoughts; especially if you have first-hand experience with these tools.<BR>
<BR>
Thanks in advance,<BR>
<BR>
Reid </TT>
</BODY>
</HTML>