VCS for squid3 development?

From: Robert Collins <robertc@dont-contact.us>
Date: Thu, 20 Dec 2007 22:48:04 +1100

This has come up a few times. In past years we did a trial with Arch,
which did not work at all well for various reasons.

However, there are now very serious and usable alternatives to CVS.

Lets choose one. And move the 3.1 HEAD over to that. We can move 3.0's
repo over or not - I don't particularly care.

I think we need the following:

- Anonymous access [e.g. to 'track HEAD']
- Mirrorable repositories to separate out trunk on squid-cache.org from
devel.squid-cache.org as we currently do (as people seem happy with this
setup).
- commits to trunk over ssh or similar secure mechanism
- works well with branches to remove the current cruft we have to deal
with on sourceforge with the mirror from trunk.
- works well on windows and unix
- friendly to automation for build tests etc in the future.
- anonymous code browsing facility (viewvc etc)

Theres a whole lot more modern VCS's can do; the above list isn't meant
to be an upper limit in our choice, rather a lower limit: something that
can't fulfil those needs is not acceptable.

I think this rules out svn as the mirror in svn is fugly compared to a
distributed VCS.

Other vcs's:
 - darcs
 - hg
 - monotone
 - bzr
 - git

All these meet the needs listed above. My strong preference is bzr; its
recently reached 1.0 and I'm extremely familiar with it due to having
spent some years on it. In a broad sense hg/monotone/bzr/git are very
similar, and darcs is radically different. So I'm not particularly
fussed about getting into a deep compare-every-little-detail of the
systems discussion. Any of them is a vast improvement over CVS.

What I am interested in is:
 - If someone puts the effort in to perform a migration of data and
scripts (I'm offering to do this during my christmas break), whats the
feeling on moving?
 - What does each of you individually need to consider moving to bzr for
squid 3 trunk development? [what infrastructure do I need to port or
replace, etc etc].

Based on this I'll put forward an actual configuration etc - or identify
things that bzr is lacking that stop us moving to it.

For the interested, A complete conversion of the CVS history for squid
is currently 66MB in bzr 1.0. (bzr is looking at halving the size of
storage again in the next few releases). So initial clone is a little
hefty to get the full history. It's entirely possible to operate exactly
as CVS, with no local copy, but I don't think we particularly need that
- 66MB is a small price to pay to a complete local mirror with local
log, annotate and so on.

The adhoc conversion I ran to see the repositories shape is here:
http://www.squid-cache.org/~robertc/bzr/cvsps/squid3/bzr/squid3/branches/HEAD/

you can make a local branch by doing 'bzr branch' e.g. 'bzr branch $URL
squid3'.

-Rob

-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.

Received on Thu Dec 20 2007 - 04:47:58 MST

This archive was generated by hypermail pre-2.1.9 : Mon Dec 31 2007 - 12:00:03 MST