[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Moving C to its own directory (was Re: ObjC tree inlining)

From: Zack Weinberg <zack_at_codesourcery.com>
Date: 2001-11-22 04:32:24 CET

On Wed, Nov 21, 2001 at 05:58:54PM -0600, Karl Fogel wrote:
>
> There have been various proposals for a Subversion module system,
> along the lines of "union directories", or other indirection-based
> systems that allow rule-based groupings. That would probably solve
> the problem described above, but it will not be in 1.0.
>
> On the other hand, Subversion will support symlinks / shortcuts, which
> should alleviate the problem...

Let me attempt to illustrate how GCC currently uses modules and how I
think that might map to a subversion repository, and you can tell me
if I'm all wet.

The gcc tree is laid out like this:

/cvs/gcc/gcc/ # core code needed always
         libiberty/
         include/
         configure
         ...

         gcc/cp/ # C++ front end and libraries
         libstdc++/

         gcc/java/ # Java front end and libraries
         libjava/
         boehm-gc/
         ...

Each of these blocks is a CVS module: checking out gcc-core gets you
no more than you need to build a C compiler, gcc-core + gcc-cp gets
you C++ as well, etc. Checking out "gcc" gives you the whole
enchilada.

Now, you say Subversion doesn't have a feature directly equivalent to
CVS modules, but it does have in-repository symbolic links. I could
lay out the file system like this:

/subv/gcc/PHYSICAL/libiberty/
                   include/
                   gcc-core/
                   gcc-cp/
                   gcc-java/
                   libstdc++/
                   libjava/
                   ...

/subv/gcc/all/ libiberty -> ../PHYSICAL/libiberty
                gcc -> ../PHYSICAL/gcc-core
                gcc/cp -> ../../PHYSICAL/gcc-cp
                ...

/subv/gcc/core/ libiberty -> ../PHYSICAL/libiberty
                gcc -> ../PHYSICAL/gcc-core
                ...

And ideally, when I checked out "all" or "core", the server would
traverse the symlinks and I'd get a working copy that appeared to have
the cp directory as a direct child of gcc/. Also, on future update
operations, the server would notice additions to the shadow tree I'm
in, but not pick up PHYSICAL modules not referenced from that tree.

Two problems: first, I've got a symlink as a child of a symlink in
the above illo, which is probably impossible. Second, how do I check
out "gcc-core gcc-cp" and get just the core and the C++ compiler? We
don't want a combinatorial explosion of these shadow trees.

zw

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:49 2006

This is an archived mail posted to the Subversion Dev mailing list.