See the recent discussion about external properties :
http://subversion.tigris.org/servlets/ReadMsg?list=users&msgNo=46108
And :
http://svnbook.red-bean.com/nightly/en/svn.advanced.props.html#svn.advanced.props.special.externals
Layout your repository like this (I'll skip the repose path/acces method) :
proja/trunk
proja/tags
proja/branches
projb/trunk
projb/tags
projb/branches
libc/trunk
libc/tags
libc/branches
libd/trunk
libd/tags
libd/branches
libe/trunk
libe/tags
libe/branches
In each trunk, put your code.
Now, create what I call "packages". This will just be containers, hodling
the parts that goes into your products. Create empty directries :
svn mkdir pck_proja/trunk
svn mkdir pck_proja/tags
svn mkdir pck_proja/branches
svn mkdir pck_projb/trunk
svn mkdir pck_projb/tags
svn mkdir pck_projb/branches
And now, let's use external properties :
svn co pck_proja/trunk pck_proja
cd pck_proja
svn propedit svn:externals .
This will launch your editor (external prop's should not be seen as files,
but rather metadata of a directory, thus the command svn propedit)
In the editor, type :
pck_proja/main proja/trunk
pck_proja/libc libc/tags/some_known_state
pck_proja/libd libd/tags/some_known_state
(save and exit)
svn ci . -m "Creating pakage proja"
And now for the fun part :
svn up
And this will checkout the trunk of proja + libc + libd in a single working
copy name pck_proja
Later on, let's says that the dev team in charge of libd realeases a new
stable state, that they tag release_2 :
cd pck_proja
svn propedit svn:externals
In the editor, type :
pck_proja/main proja/trunk
pck_proja/libc libc/tags/some_known_state
pck_proja/libd libd/tags/release_2
(save and exit)
svn ci . -m "Inegrating release 2 of libd"
svn up
And "voilą", all users of proja package will retrieve the new lib.
I run a repository holding 6 such packages, retrieving a few dozain of
modules.
You would be wise to play a bit with this on a trial repository/code base
before putting this in production.
(Think that instead of tags, you may use a syntax like :
pck_proja/main proja/trunk
pck_proja/libc -r123 libc/trunk
pck_proja/libd -r456 libd/trunk)
Jean-Baptiste Maillet
Quoting Ingo Maindorfer <Ingo.Maindorfer@sick.de>:
> Hi to all!
>
> We working in a small division and plan to set up subversion for our
> projects.
> Now I'm confused about the users@subversion.tigris.org
> We have some prjects, i.E PorjA and PorjB. The projects use some
> libraries: LibC, LibD and LibE.
> These libs ar coded by us and ProjA und ProjB should linked statically
> again these libs.
> The problem I have is, that PorjA use LibC in rev 1 and ProjB used it in
> rev 2. The same is true fpr LibD and LibE.
>
> Do you have any hints for solving that problem?
>
> Best Regards,
>
> Ingo
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Mar 9 16:42:33 2006