hybrid source control

Given that CVS seems to be a genuine problem for some of us, and that there's no reason in the world to change for others, I wonder if we shouldn't consider adopting a hybrid approach to source control, a la FreeBSD.

  - highly active developers bitten by CVS,
  - people working on particular, 'experimental' projects
and - those who "just want to"

  ...use Perforce. For LLVM today, this might map to something like:

  - Reid :wink: (though I'm sure he's not alone..)
  - a bunch of people using LLVM in interesting ways but not 'core' LLVM hackers, who nevertheless might like to see their stuff in the tree
  - (for example here:) Windows guys. (It's been literally years since I used windows but I remember Perforce as being _much_ more pleasant than CVS in that environment.)


*Everyone else*, i.e. those:

  - who are only trying to download the code to have a play, and don't even want to think about "which branch do I need??"
  - who are LLVM _users_ in a very strict sense of the word (e.g. folks using it as a GCC-replacement)
  - who for whatever reason are just fine with CVS and don't want to change

  .. continue to use CVS.

The gotcha, of course, is that it will take a little effort to maintain CVS but I wonder if some of that effort isn't already being spent in determining where to draw the line for LLVM releases. Though now that I think about it, browsing through a Perforce repo to cherry pick stuff to go into an LLVM release (i.e. to go into CVS) isn't hard at all, and while I haven't checked, I'm sure the FreeBSD project already has a bunch of scripts to do just that.

  Here I've spoken in terms of Perforce and CVS partly because that's exactly what the FreeBSD project is using and partly because that's what I'd like to see LLVM use, but you could of course replace Perforce with whatever other VCS floats your boat.

  Well, it's an idea.