Search code examples
c#sharpsvnexternals

How to correctly generate a complex externals structure with sharpsvn?


I have a very convoluted repository structure using subversion. Much of this has to do with the limitations of my team, security requirements, and the dependencies of the project. The structure used here is not optional as a consequence and cannot be altered.

The repository structure consists of the following pattern:

root-|- main -|- branches
     |        |- tags
     |        |- trunk - main - plugins
     |
     |- modules -| - module1 -|- branches
                 |            |- tags
                 |            |- trunk - module1 - plugins - plugin1
                 |            |- modules - ...
                 |
                 | - module2 -|- branches
                 |            |- tags
                 |            |- trunk - module2 - plugins - plugin2
                 |            |- modules - ...

The source of each external is a pluginX folder. The target is the plugins folder of the trunk one level lower (or the plugins folder of main). The documentation of the API is nigh non-existent unfortunately. I'm suspecting I need to the propset function somehow but how to point to the specific target directory and source directories is not described anywhere I've been able to find nor have I found any examples.

Edit: Each module may be pulled separately and worked on independent of the root project. I cannot just use the root for this. Hell, I can't even get a hostile response to this question!!


Solution

  • Answering my own question. The library I'm using has a function that sets the externals for a given folder in the local system given an absolute path to that folder. The library is a port from the C version of the library and apparently the authors just assumed that people would "just know" to look there.