You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Mathieu Malaterre <ma...@gmail.com> on 2007/05/28 07:37:42 UTC

Good SVN practices with multiples submodules

Hello there,

  I have the following issue. We currently have the following layout
for our CVS server:

cvsroot/
       app1/
       app2/
       ...
       modules/
               module1
               module2
               module3
               ...


  Where appX can use moduleY and/or moduleZ. Every time an appX is
validated: it is branched. But one has to *manually* make sure that
all modules used is also branched using the very same tag.
  I would like to know if there would be any easier (transparent) way
of doing that in subversion ? (there is not symlink on a subversion
server, right ?).

Thanks,

-- 
Mathieu

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Good SVN practices with multiples submodules

Posted by Andy Levy <an...@gmail.com>.
On 5/28/07, Mathieu Malaterre <ma...@gmail.com> wrote:
> Hello there,
>
>   I have the following issue. We currently have the following layout
> for our CVS server:
>
> cvsroot/
>        app1/
>        app2/
>        ...
>        modules/
>                module1
>                module2
>                module3
>                ...
>
>
>   Where appX can use moduleY and/or moduleZ. Every time an appX is
> validated: it is branched. But one has to *manually* make sure that
> all modules used is also branched using the very same tag.
>   I would like to know if there would be any easier (transparent) way
> of doing that in subversion ? (there is not symlink on a subversion
> server, right ?).

In Subversion with nothing extra? No. But if you use svncopy.pl to
make the branch, it'll update the externals to point at your "modules"
at the current revision (based on how I read the README file anyway).
See http://svn.collab.net/repos/svn/trunk/contrib/client-side/svncopy/svncopy.README

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: Good SVN practices with multiples submodules

Posted by Shawn Talbert <st...@exploreconsulting.com>.
Perhaps look at svn:externals to solve the underlying need?

Rather than branch the modules for each validated app, you could set
svn:externals to a particular revision of moduleY and/or Z. When your app
validation is complete, and you tag it, it retains the original
svn:externals reference it had when validated. Hence that tag revision will
automatically always reference the particular version of moduleY/Z, without
the need to also branch the modules. If these are shared modules, why not
tag them on their own, and simply tell each app which version of the
module(s) to use via svn:externals?

Your case may be unique, but in most cases I think tagging of modules shared
amongst applications is (beneficially) somewhat independent of the multiple
applications' tagging. If nothing as changed in the shared module, I'd argue
it confuses things to tag it as a new revision just to matching the app tag
name. Further, you'd have to ensure tag uniqueness for all these different
apps for each module, which seems a harder.

However, if you really want to have the apps drive the module tag names
(although this seems to be backwards of how I use modules) you should be
able to do so by just scripting two copies instead of one - one copy for the
app tag, then immediately follow with a tag copy (using the same repo
revision as the app tag) of the module(s).

-----Original Message-----
From: Mathieu Malaterre [mailto:mathieu.malaterre@gmail.com] 
Sent: Monday, May 28, 2007 12:38 AM
To: users@subversion.tigris.org
Subject: Good SVN practices with multiples submodules

Hello there,

  I have the following issue. We currently have the following layout
for our CVS server:

cvsroot/
       app1/
       app2/
       ...
       modules/
               module1
               module2
               module3
               ...


  Where appX can use moduleY and/or moduleZ. Every time an appX is
validated: it is branched. But one has to *manually* make sure that
all modules used is also branched using the very same tag.
  I would like to know if there would be any easier (transparent) way
of doing that in subversion ? (there is not symlink on a subversion
server, right ?).

Thanks,

-- 
Mathieu

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org