Search code examples
eclipsesvnsubversive

Complex SVN Checkout Procedure?


I have a repository configured like this:

+---CollectionA
|   \---project1
|       \---trunk
|           \---sourcecode
|       \---tags
|           \---rel-1
|   \---project2
|       \---trunk
|           \---sourcecode
|       \---tags
|   \---project3
|       \---trunk
|           \---sourcecode
|       \---tags
|           \---rel-1

I'd like to checkout any project tagged rel-1 as that project. In this case I'd get project1 and project3 in my workspace, but not project2.

All projectN are Eclipse Java projects.

I'm using Eclipse/Subversive, but I'm open to using Tortoise or the command line (windows) if I need to.

Edit: Currently, to do this, I'll have to go through my 30-some projects and checkout each tag individually. Is there a way to do this without going through each project individually?


Solution

  • I think you will need to write a command line script in order to do this. There's no way I know of to do this using Tortoise or an integrated IDE/SVN tool since this is an uncommon (in my experience) type of checkout operation.

    You can ask svn on the command line as to whether a directory exists using the svn list command.

    Then you could check the output (maybe it returns a non-zero value if the directory isn't found, or you could parse the output stream) to determine whether the tag exists. Add the projects that contain the tag to a list, then checkout those projects.

    Something like this:

    For each project in myProjects:
       exec "svn list " myRepositoryPath + "/" + myProject + "/tags/directory"