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