0

We have an SVN tree which is used to compile our software on a variety of platforms (Win, OSX, Linux, Iphone, Android).

We use the very same tree for all applications in order to keep things simple and clean.

This works great but checkout times is starting to be an issues since we need to checkout all dependencies for each and every platform (dependencies are in nested subfolders).

Is it possible to configure SVN in order to ignore some folders depending on the platform that is performing checkout?

Some ideas we have:

  1. Using a global ignore pattern configured differently in every platform client which excludes part of the tree. Drawback: we would need to change our tree in order to have one single pattern which does not exclude something that is indeed needed. We currently don't :(
  2. Using the svn:ignore tag: I don't think this can be platform dependant. Can it?
  3. Have a different root folder for each platform and then use "externals" to link only what is required (this is a lot of work to be maintained)

Does anyone have experience with this?

Thanks!

Pokot0
  • 562
  • 1
  • 7
  • 12
  • This question is similar to http://stackoverflow.com/q/508135/16070 – Franck Mesirard Feb 10 '12 at 11:09
  • Just wondering: why do you need to do a full checkout again and again? An `svn update` before each build should be sufficient and if you want to make sure there are no local modifications do an `svn revert -R *` before `svn update`. – Sky Jan 20 '17 at 10:44

1 Answers1

2

You can use svn co --depth and svn --set-depth to circumvent stuff you don't want to checkout. It can get a bit tedious specifying each directory, but you could put shell and batch scripts in the root of the working directory to help you in this endeavor.

C> svn co --depth immediates %URL% mydir
C> cd my dir
C> helpcheckout.bat
Checking out tree for Windows...
[...]

$ svn co --depth immediates $URL mydir
$ helpcheckout.sh --platform linux
$ Checking out tree for Linux development...

Checkout these options under Sparse Directories in the Subversion online manual.

David W.
  • 105,218
  • 39
  • 216
  • 337