subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Zumwiese <>
Subject Re: Include relative externals in svn log/svn update?
Date Fri, 08 Mar 2013 15:35:31 GMT
Am 11.02.2013 22:08, schrieb Stefan Zumwiese:
> I'm planning on setting up a repository which looks like this:
>    \common
>    \common\folder1
>    \common\folder2
>    \project1
> project1 would include folder1 and folder2 via relative svn:externals
> properties. Other projects in the same repository could include the same
> and/or other common folders.

Maybe I should give some more background about what we want to achieve: 
our goal is to have the code of multiple projects/products and all 
common parts in one repository, without the need to specify explicit 
revisions for the common parts which are pulled into single projects via 
svn:externals. For each project/product a branch would be created once 
it is put into maintenance mode. This means that also the common parts 
are branched. Each project is therefore free to make changes to common 
parts, but does not see changes made to common parts by other products 
(unless explicitly merged).

\branches\project1_v1 <-- complete branch of \trunk
\branches\project2_v3 <-- complete branch of \trunk

To keep the size of a checkout at a reasonable size, only the relevant 
common parts should be pulled in via externals. One would than check out 
e.g. \trunk\project1.

When experimenting with this planned repository layout and testing some 
use cases, I ran into these issues:

> When viewing the log of project1, I can see only the direct changes of
> project1, not the changes that were made in the relative externals.
> Since I'm currently deciding on the repository structure: how good are
> chances that something like --include-externals or
> --include-local-externals might be added as an option to svn log in the
> future?
(Choose a name for the flag as you see fit.)
> Also, do you think a similar feature could also be added to svn update,
> such that when specifing an explicit revision, relative externals from
> the same repository will be updated to this revision number as well
> (instead of HEAD)?
> So
>    svn update --revision 123 --include-local-externals
(Choose a name for the flag as you see fit.)
> would update all relative externals which do not explicitly specify a
> revision to revision 123 as well, while
>    svn update --revision 123
> stays the same, e.g. updates the externals to HEAD.

Are there others who might need the same functionality? Do you think 
these features could make it into SVN?

Are there better ways to accomplish the same result? Instead of using 
externals, we might as well use a checkout depth of 'empty' for the 
common folder and explicitly specifying the checkout depth for each 
required common part only. However, since this would require the use of 
a batch file or shell script for every fresh checkout, I'm rather 
looking for a way to use the possibilities built into SVN already.

All comments are highly appreciated.


View raw message