[LLVMdev] Open Source Contributions (was Re: Benchmarks)

Chris Lattner sabre at nondot.org
Sat May 1 22:52:02 PDT 2004

On Sat, 1 May 2004, Reid Spencer wrote:

> I'd be happy to contribute more and in fact, there are lots of things I
> could and would contribute. Pretty much the only thing that stops me  is
> the project's CVS policy.

Wow, I really had no idea that this was such a problem!

> (erm, perhaps I'm just over-booked? :)

Heh, I know a little bit of that feeling ;)

> I need some efficiency if I'm to do anything. From my perspective, the
> process is _way_ more efficient if I can just create a branch, do what I
> need to do and then tell you "look at branch xyz and merge if you like
> it".

Okay, that makes sense.

> Its possible with CVS to restrict access to main line commits to
> certain users so you can still maintain control of the main development
> trend.

The problem is that CVS was not at all designed for this.  It certainly is
possible to hack it enough with the right set of scripts though, and
several projects have them.

> Furthermore, providing CVS access should reduce your administrative
> burden. Instead of patching a pile of individual files, you can simply
> look at the changes introduced by a branch and decide if its something
> you want to keep or inform the branch author of the things that need to
> be modified.

That would certainly be nice.  :)

> I understand the University has certain legal restrictions about
> granting access to non-student and non-faculty users. That may be the
> trump card that prevents wider use of CVS by contributors to LLVM.

Unfortunately this is a big problem.

> If that is the case, I would suggest that (a) the project simply accept
> that contributions from others will be minimal or

Hrm, that's not very attractive :)

> (b) move the CVS repository somewhere that doesn't have the University's
> restrictions. That last option, however, may have additional
> intellectual property issues.

I don't think that there would be IP issues: LLVM is (effectively) BSD
licensed, so it could be forked at any time without a problem.  This would
obviously be very bad for LLVM, but it's possible.

The more I've thought about this, the more that I'm beginning to realize
that CVS is the root of the problem.  Perhaps it is time for LLVM to
seriously start looking at switching over to a decentralized version
control system?  I really am not "up" on the various options, but I've
heard rumars that there are now several good options.

Take 'arch' for example: its approach seems like it would solve almost all
of the version control issues that we are facing, and supports
decentralized development in particular.  From what I understand, you
would be able to do all of your development on your own "local" branch,
others could have access to it, and when it's ready, we could pull it in
as one big patch or set of changes.

More information about the llvm-dev mailing list