5

I have a super-project which svn:externals several other projects. They, in turn svn:external their own dependencies. One of my issues is that my dependencies often depend on the same svn:external (common library) which leads to a lot of duplicated checking out and building.

When I checkout or update my main project, I'd like to checkout my immediate externals, but ignore their externals. I would imagine that I'd be able to set this in the svn property, but I haven't figured out how yet. I would imagine something like this:

$ svn propset svn:externals -r25 http://svn.example.com/foo/trunk foo --ignore-externals
Subcommand 'propset' doesn't accept option '--ignore-externals'
Type 'svn help propset' for usage.

Is there another way to avoid checking out externals of externals? --depth doesn't really work because the depth of the folder structure in my parent or intermediate repositories are arbitrary and so you can't reliably filter out externals with that command.

Stewart
  • 4,356
  • 2
  • 27
  • 59
  • Did you ever figure this out? If so, I would appreciate knowing how as I am having a similar problem. – Bowie Owens Sep 14 '17 at 06:09
  • Nope, no solution yet. I've had to just live with multiple checkouts of much lower-level solutions. – Stewart Sep 14 '17 at 06:18
  • Your immediate problem is that anything starting with a `-` is treated as an option by the propget command (and so not stored in the external). You're also missing the path of them item that should get the property (probably "`.`") You can use `--` to tell propget to stop processing options, so `svn propset -- svn:externals "-r25 /path/to/external my-external" .` should work (and store the -r25 in the property). However, the other part of what you want is simply not (yet) supported by externals - you cannot limit the depth of the external, or ignore its externals. – Zastai Feb 23 '18 at 11:01

0 Answers0