Subversion (was Rewrite cvsup & portupgrade in C)

From: Craig Boston <craig_at_xfoil.gank.org>
Date: Wed, 7 Jul 2004 05:59:57 -0500
On Wednesday 07 July 2004 12:38 am, Jon Noack wrote:
> On 07/07/04 00:24, Alexander wrote:
> > i think that cvs is a _bit_ arcane, subversion is good replacement..
> > well i said it's only my 2 cents :)
>
> Here's the start of an interesting thread over on -hackers from a few
> months ago wrt subversion:
> http://lists.freebsd.org/pipermail/freebsd-hackers/2004-February/005592.html

FWIW, I've been using subversion for my local FreeBSD repository pretty much 
since that thread on -hackers.  It does still have a few nits and performance 
problems that make it painful on very large repositories.  It's downright 
awesome on small repos though :)

Here's what I've been doing:

freebsd/branches/*		My local branches
freebsd/drops/*			Snapshots of the real CVS tree.
freebsd/projects/*		Random bits that don't fit anywhere else (stuff being 
developed outside the tree)

Every couple weeks I'll use cvs to check out snapshots of HEAD, RELENG_4, 
RELENG_4_10, and RELENG_5_2, and use svn_load_dirs to load them into the 
corresponding directory in drops/.  Then I'll use svn merge to merge any 
changes into my local branch.

Unfortunately even very simple operations that have to apply to the whole tree 
take forever and a half.  update/co is the worst offender (and svn_load_dirs 
runs it twice!), commit and status to a lesser extent.  Sometimes even a 
simple "svn info" against a single file that's at the top of the repo, say, 
UPDATING, will take a long time to complete too.  I had to set http-timeout 
to a ridiculous number (3600, probably overkill though) because for svn 
update and commit the neon client would often time out waiting for the server 
to finish.

Admittedly, my server is underpowered so I'm not expecting it to be super 
quick.  However, the really annoying part is that long operations often can't 
be canceled!  For example, an accidental "svn update" on the top level, then 
pressing ^C to interrupt does nothing.  If the process is killed (or neon 
times out, blah), stale locks are left all over the place and the apache 
process on the server continues churning away until it would have finished 
anyway, massively slowing down any further actions until it does...

I will say that the copy-on-write branching is VERY cool.  I can see why 
people like p4 so much just for that one feature alone.  Automatic repeated 
merge capability is supposed to be coming soon, that should be good too.

I should probably go over to the subversion lists and see if anybody has any 
suggestions to improve the situation.

Craig
Received on Wed Jul 07 2004 - 09:00:05 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:00 UTC