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

Packages - CVS Modules and svn:Externals

From: Brooke Smith <novorivus_at_optusnet.com.au>
Date: 2004-08-11 02:19:40 CEST

Gidday Subversion Users,

I would like to ask about using svn:externals and/or how best to
achieve the functionality I had with CVS modules.

I am the sysadmin, project manager and developer of a publishing system
to produce technical publications. The system has a number of common
files/scripts used across multiple Applications. Such files are the
SGML Catalog. txt file and the SGML DTDs. Applications which use these
are App1 and App2 (among many). We currently use CVS, and using CVS
modules we are able to organise the development working dirs and the
production directory to allow for a structure such as:

SGML / Catalog.txt
SGML / Doctypes / ....
...
App1 / App1.pl
App2 / App2.pl
...

The repository looks the same as this.

The CVS Modules are defined as:

Application1 -a App1 SGML
Application2 -a App2 SGML

cvs checkout or cvs export (of Application1 or 2) will export the SGML
dir aswell as the Application dirs App1 and 2, at the root level. NOTE
that we can also checkout or export the SGML 'Application'
independantly of App1 or 2 (and the SGML modifications will be realised
in App1 and 2 since these refer to the files in SGML).

SVN:externals

Svn:externals at first seemed to be the SVN equivalent of CVS modules,
however I am unable to reproduce the above functionality. That's
because Externals are defined on a Directory (rather than globally).
I'd define the App1 and App2 directories. Like:

> cd App1
> svn propedit svn:externals .
SGML file:///svn/repos/SGML

> cd ../App2
> ...

But when I checkout or export I get:

App1 / App1.pl
App1 / SGML

and:

App2 / App2.pl
App2 / SGML

...
And so on for every application that defines SGML as an external. I
don't want to it this way for then I'd have to re-export every
applicatiion to the Production area when one of these Depended-upon
Applications is updated (there are many depended-upon Applications).

Is there a way in Subversion to achieve this same behaviour as CVS
modules in the way I described? Or do you have any comments on the way
I am organising things?

I thought that I could define my own property - say 'DEPENDS' and list
the depended-upon Applications that the current Application depends on.

> cd App1
> svn propedit DEPENDS .
SGML file:///svn/repos/SGML

Or something like this. I would then need to roll my own 'svn
checkout' and 'svn export' scripts to go through the 'depend'encies and
checkout or export those also. Is this appropriate and would it work?
Are there any plans to include such functionality in Subversion?

Thanks for any feedback,

Brooke
Received on Wed Aug 11 02:20:47 2004

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