# The following was supposedly scribed by
# Ken Williams
# on Thursday 11 November 2004 09:08 am:

>IMO if people are doing any sort of collaboration, you really should
>set up a centralized source that they can submit patches against,
> and keep up-to-the-minute track of what you're doing (like right
> after you send an email about something you're adding).  It's easy
> enough to set up a sourceforge account for CVS.
>
>It's always a pain to submit patches against things when they don't
>make their revision control system accessible.

If you like subversion and you're running on systems that support 
symlinks, you might want to checkout my scheme.  Actually, I bet it 
works for CVS too.

Basically, I have about 20 projects checked-out 
under  /usr/local/perl_lib/svn_hop/.  From there, I symlink the code 
into a single tree, so there is no make && make install required to 
make the changes active.  Similarly, if I do 'svn update foo', any 
changes from the foo repository become active immediately.

The generalized write-up:
  
http://ericwilhelm.homeip.net/svn/Module-Subversion-Juggle/trunk/data/notes/how_this_works.txt

A specific set of instructions:
  http://ericwilhelm.homeip.net/uc/trunk/INSTALL.LIVE

If this sounds interesting, browse around under svn/ to see what kind 
of directory structure I'm using.  (Actually, the uc/ repository has 
a newer directory structure, where we mix python and perl code (the 
live install method works for python too.))

I use this scheme on my workstation, and mirror it (with unison) onto 
one of my client's machines.  That machine has 3-4 users, so it's not 
a high-stress production environment.  This way of working has been 
really fast for me, and even works in collaborative environments.

I've been wanting to write-up a howto for some time now, but I haven't 
even formalized this whole process yet.  I guess it would be cool to 
extend makemaker or something to support a 'make linked-install'.

Another path that I haven't travelled yet is the one where a release 
gets automagically packaged and uploaded to CPAN using a post-commit 
hook (say, whenever you tag a repository under releases/.)

--Eric

P.S.  www.berlios.de has svn available if you don't have a server

Reply via email to