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

Re: Include relative externals in svn log/svn update?

From: Stefan Zumwiese <dreimal_at_abwesend.de>
Date: Fri, 08 Mar 2013 16:35:31 +0100

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).

\trunk\common
\trunk\common\folder1
\trunk\common\folder2
\trunk\project1
\trunk\project2
\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.

Stefan
Received on 2013-03-08 16:36:12 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.