[LLVMdev] Version Control Upgrade?

Alkis Evlogimenos alkis at cs.uiuc.edu
Sun Jan 9 00:33:33 PST 2005


On Friday 07 January 2005 18:35, Reid Spencer wrote:
> LLVMers,
>
> 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.
>
> If you're interested in this topic (and you should be if you're actively
> developing), please have a look at this site:
> http://better-scm.berlios.de/comparison/comparison.html 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.
>
>
>       * [Atomic Commit] - all changed files in a change set get
>         committed or none of them do.
>       * [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).
>       * [Files and Directories Moves or Renames] - make sure moves and
>         renames of both files and directories are tracked as well as
>         edits.
>       * [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.
>       * [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.
>       * [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.
>
>
> 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.

I believe subversion does not support "Remote Repository Replication" but svk 
does (a modified version of subversion).

After reading the docs for these VCS I don't think there is a clear choice 
today. Subversion lacks distributed development. Arch supports distributed 
development but forces you to have srcdir != objdir (not necessarily bad, but 
i want the choice) and it also has akward commands. Monotone seems very clear 
on how it works but lacks a web interface and is unclear how mature it is.

If we don't care about the web interface I suggest we give monotone a  try.

-- 

Alkis




More information about the llvm-dev mailing list