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

Modular repository layout advice

From: Nicklas Norling <nicklas.norling_at_ifsab.se>
Date: 2004-03-23 10:41:02 CET

Hi.

I'd like to hear if anyone has any experience with a modular layout in the
subversion repo.

I've got this rather large application consisting of modules. Some of these
modules are base modules, they provide the foundation for the others, or
are at the bottom of the dependency pyramid if you will. Others then depend
on these and also provide the basic features for yet another layer of
modules.
Like a pyramid, or terass if you will.

Since checking out all these modules will be quite a large amount of code
I'd like to organize the repo in such a way that developers can pick and
choose
what they want.
E.g. a developer of the basic modules might only want his/her basic modules,
and perhaps one or two dependant modules to be able to verify their changes.
The developers on modules higher up in the hierarchy might want the basic
modules,
their own modul(s) and possibly some upstream modules. The developers of the
modules highest in the dependencies would want only their module(s) and the
rest
should be as stabile as possible.

Currently I have the following proposal of the layout of the working copy
from my
developers (they use some tools that makes this layout beneficial).

<workspace>
   <dev_root>
      <module1>
      <module2>
      ...
      <moduleX>

I've been reading the svn book and thought of:

/trunk/module1
/trunk/module2
...
/trunk/moduleX

Developers would then get all code, but they can pin some of the modules to
specific version so that the base is not moving while developing higher
modules.
Judging from performance of recursive operations in subversion I'm not sure
this
is possible at all. There will be over a gig of files, probably close to
100k files in
10k folders. Would commit/update etc. work on that?

Also thought of this (from svn book):

/module1/trunk/
/module2/trunk/
...
/moduleX/trunk/

That's really a sexy solution in my eyes, it's like a smorgasbord where
developers
can pick and choose what every modules they need. They can still pin them to
specific
version if they want. Modularized even in subversion.

But, I can't figure out how to check this code out. It's not possible to
check out modules
in a parallel if I understand correctly, at least TSVN appears to be grayed
out in such
a situation.
So I looked at svn:external, but I can't seem to get it to work either.
Externals seems
useless when it comes to modules like this, it will only work if I have
subfolders in an
already existing modules, and then the modularization is gone.

While I have presented you with what I want, and what I've got, there is
certainly room for
change. But somehow the modularization has to be maintained. I can't seem to
figure
out how to use subversion to do this in a nice way.

Does anyone have any ideas on how to do this?
Maybe there are people out there with experience with this sort of
modularization?
I would love to hear your feedback as I've been unable to find anything like
this on the net.

Thanks!
/Nicke
Received on Tue Mar 23 10:41:46 2004

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