You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Rami Kayyali <r....@gmail.com> on 2004/12/29 01:59:06 UTC

Repository Layout Question

Hello everyone,
I'm new to users@ mailing lists and I was hoping you guys could help
me with deciding a layout for one of my "complex" repositories.

You can find the repository here:
http://svn.codeflakes.com/repos/codeflakes-php/5, and here's the idea
behind it:

There are two main directories, "release" and "packages", release
contains core framework files and contains a release/trunk/lib
directory which should hold selected packages from "packages".

In "packages", each package is a project on its own, so
packages/IO_Read is a whole different project than packages/IO_Stream
(of course both are hypothetical), however both should be linked to
release/trunk/lib/IO/ like this:

/release/trunk/lib/IO/
/release/trunk/lib/IO/File.php
/release/trunk/lib/IO/File/other_files
/release/trunk/lib/IO/Stream.php
/release/trunk/lib/IO/Stream/other_files

I know it's not the best layout, but it's the only one I could come up
with, which of course I might be wrong with.

What I'm trying to do is to checkout all "chosen" packages into
release/trunk/lib when the release is checked out, this way users who
check out the release will have release-related packages already
available in lib.

svn:externals however didn't work, I tried setting it like this on
release/trunk/lib
IO repos/packages/IO_File/trunk/lib/IO
IO repos/packages/IO_Stream/trunk/lib/IO

SVN only checked out the latter one. So basically, I can't have both
URLs point to the same target.

I hope you guys could enlighten me and tell me if there's anything I
can do other than complain, if you could come up with a better idea,
I'll be more than glad to know.

Thanks in advance everyone.

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

Re: Repository Layout Question

Posted by Rami Kayyali <r....@gmail.com>.
Vendor branches don't seem to be useful for my purposes, but still,
thanks a lot for pointing it out, I never actually took time to read
the whole SVN book.

Well, I think I'm going to stick with either versioning symlinks in
release/trunk/lib or provide a script that checks out needed packages
and "extracts" them into lib.

Thanks a lot VK.


On Wed, 29 Dec 2004 08:53:00 +0530, VK Sameer <sa...@collab.net> wrote:
> On Wed, 2004-12-29 at 07:29, Rami Kayyali wrote:
> 
> > You can find the repository here:
> > http://svn.codeflakes.com/repos/codeflakes-php/5, and here's the idea
> > behind it:
> >
> > There are two main directories, "release" and "packages", release
> > contains core framework files and contains a release/trunk/lib
> > directory which should hold selected packages from "packages".
> >
> > In "packages", each package is a project on its own, so
> > packages/IO_Read is a whole different project than packages/IO_Stream
> > (of course both are hypothetical), however both should be linked to
> > release/trunk/lib/IO/ like this:
> >
> > /release/trunk/lib/IO/
> > /release/trunk/lib/IO/File.php
> > /release/trunk/lib/IO/File/other_files
> > /release/trunk/lib/IO/Stream.php
> > /release/trunk/lib/IO/Stream/other_files
> 
> As you've seen, that doesn't work with svn:externals.
> 
> One idea is to create IO/File/ and IO/Stream/ as separate projects, and
> keep IO/*.php in trunk/lib. Or move IO/File.php into IO/File, so that
> checking out IO/File will check that out as well.
> 
> Another is to have IO_File/ and IO_Stream/ under lib/ and check in
> symlinks like lib/libIO_File.so and lib/libIO_Stream.so. Or put IO_File/
> and IO_Stream in a totally different place and have only
> files, which are mostly symlinks under lib.
> 
> > What I'm trying to do is to checkout all "chosen" packages into
> > release/trunk/lib when the release is checked out, this way users who
> > check out the release will have release-related packages already
> > available in lib.
> 
> While vendor branches are a lot more complicated than you seem to need,
> it might be worth a read:
> http://svnbook.red-bean.com/en/1.1/ch07s04.html.
> 
> Regards
> Sameer
> 
>

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

Re: Repository Layout Question

Posted by VK Sameer <sa...@collab.net>.
On Wed, 2004-12-29 at 07:29, Rami Kayyali wrote:

> You can find the repository here:
> http://svn.codeflakes.com/repos/codeflakes-php/5, and here's the idea
> behind it:
> 
> There are two main directories, "release" and "packages", release
> contains core framework files and contains a release/trunk/lib
> directory which should hold selected packages from "packages".
> 
> In "packages", each package is a project on its own, so
> packages/IO_Read is a whole different project than packages/IO_Stream
> (of course both are hypothetical), however both should be linked to
> release/trunk/lib/IO/ like this:
> 
> /release/trunk/lib/IO/
> /release/trunk/lib/IO/File.php
> /release/trunk/lib/IO/File/other_files
> /release/trunk/lib/IO/Stream.php
> /release/trunk/lib/IO/Stream/other_files

As you've seen, that doesn't work with svn:externals. 

One idea is to create IO/File/ and IO/Stream/ as separate projects, and
keep IO/*.php in trunk/lib. Or move IO/File.php into IO/File, so that
checking out IO/File will check that out as well.

Another is to have IO_File/ and IO_Stream/ under lib/ and check in
symlinks like lib/libIO_File.so and lib/libIO_Stream.so. Or put IO_File/
and IO_Stream in a totally different place and have only
files, which are mostly symlinks under lib.

> What I'm trying to do is to checkout all "chosen" packages into
> release/trunk/lib when the release is checked out, this way users who
> check out the release will have release-related packages already
> available in lib.

While vendor branches are a lot more complicated than you seem to need,
it might be worth a read:
http://svnbook.red-bean.com/en/1.1/ch07s04.html.

Regards
Sameer


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