SVN for src (was Re: Binutils 2.18 prep)

Andrew STUBBS andrew.stubbs@st.com
Thu Mar 22 10:06:00 GMT 2007


Daniel Jacobowitz wrote:
> I expect to create the branch within a couple of weeks.  I'd like to
> keep the branch-to-release interval fairly short; I've been using
> better revision control systems than CVS lately, and they've left me
> very bitter about having to merge patches to a CVS branch.  Volunteers
> to find a workable way to use SVN for src instead are highly welcomed
> as far as I'm concerned.

My understanding is that the problem is the lack of Subversion support 
for something like CVS modules.

I have been thinking about this problem recently. Obviously the best 
solution is native support from Subversion, but in it's absence I have 
come up with an alternative. Sorry if I've just re-invented a well known 
solution, but here goes:

We create an Subversion directory containing all the top-level files 
(configure etc.), but with all the subdirectories (gas, gdb etc.) 
present but *empty*. We then provide a script that does 'svn switch' on 
each directory required for a given 'module'. This is the inverse of the 
svn://gcc.gnu.org/svn/gcc/emptydir idea (see 
http://gcc.gnu.org/wiki/SvnSetup "Optimize disk usage").

The repository might look like:

trunk/
   src/
     configure
     Makefile.in
     ...
     binutils/
     gas/
     gdb/
     ...
     switch-modules.sh
   modules/
     binutils/
       ar.c
       ...
     gas/
       as.c
       ...
     gdb/
       gdb.c
       ...
     ...

So you have a two-step checkout procedure:

   svn checkout svn:://sourceware.org/svn/trunk/src
   cd src
   ./switch-modules.sh binutils

The script would then do:

   svn switch svn://sourceware.org/svn/trunk/modules/binutils binutils
   svn switch svn://sourceware.org/svn/trunk/modules/gas gas
   svn switch svn://sourceware.org/svn/trunk/modules/include include
   ...

This is not an ideal solution - it requires two steps, 'svn status' will 
always list all the switches, and it does not provide fine grained 
control over the contents of each directory. However, it does solve the 
problem of enormous working trees.

Just a thought

Andrew



More information about the Binutils mailing list