How to fetch a Subversion external without fetching all other directories and subdirectories
Asked Answered
L

2

7

I have a Subversion repository called 'repo'. Inside of repo are trunk/ and branches/ directories. Within branches/ there are several dozen release branches, e.g. 1.0/, 1.1/. These branches/ directories contain a relatively large application.

I want to add an external at the root of repo, called 'myExternal'. When I define the external, the only way to get SVN to create the myExternal/ directory is to run 'svn up' from the root of repo. However, this will also cause the entire contents of branches/ to be checked out, which is unacceptable (we have many developers that need to get myExternal/ added to their copy of repo, and can't have all of them checking out gigabytes of unneeded branches).

I've tried 'svn up --set-depth immediates', but that doesn't seem to get the externals. Is there any way to tell svn to fetch myExternal/ without fetching all of branches/ ?

Using SVN 1.7.

Lardner answered 4/4, 2012 at 21:6 Comment(0)
N
4

Yes, that is the known issue of subversion externals are not created unless depth=infinity.

I think there is no way as to redesign your directory structure so that myExternal is attached not to the repo but to its subfolders, e.g. set on /trunk and every folder in /branches.

Or you can create a script that at first fetches immediates of repo and then fetches externals set on repo (which it may get by reading properties of repo: svn propget svn:externals).

Nanettenani answered 4/4, 2012 at 21:46 Comment(0)
M
6

Externals are just svn checkouts so you can check them out manually.

You could also use a command like this. You may have to modify it a bit if your externals are in a different format.

svn propget svn:externals | awk '{print $2, $1}' | xargs -L1 svn co
Merissameristem answered 2/10, 2014 at 8:19 Comment(3)
svn propget svn:externals | xargs -L1 svn co in my case workedRancidity
svn propget svn:externals | sed -e 's/ / .\//' | sed -e 's/\'//g' | xargs -L1 svn co - worked for meStomatal
I should have clarified that we already were simply checking out manually. My intention was to see if there was a native way to do this with the initial 'checkout'Lardner
N
4

Yes, that is the known issue of subversion externals are not created unless depth=infinity.

I think there is no way as to redesign your directory structure so that myExternal is attached not to the repo but to its subfolders, e.g. set on /trunk and every folder in /branches.

Or you can create a script that at first fetches immediates of repo and then fetches externals set on repo (which it may get by reading properties of repo: svn propget svn:externals).

Nanettenani answered 4/4, 2012 at 21:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.