tags:

views:

191

answers:

2

Setting up SVN using Apple Developer Connection manual (http://developer.apple.com/mac/articles/server/subversionwithxcode3.html). Regardless of it, I managed to setup SVN repository on local harddisk and even connect to it.

Problem: would like to put several non-related projects under one repository. How to do that with XCode? For now it looks like I can have only one project in one repository. I have 25 python projects, which I would like to put under proper version control. Separate repositories for each one would be way too much trouble. Any suggestions?

A: 

The only way I can think of is to create the repository, then have Xcode check each project in to a separate subdirectory in the repository. This would require you go through and set up a different SVN path for each project manually, though, and might get to be kind of a pain.

Instead what you might consider is managing your SVN needs manually: put all the projects into one folder on the drive, then check that one folder into your repository and do future updates/commits from the terminal. If you installed the developer tools, you should have a command-line svn client in addition to Xcode support that you can use for this purpose.

Tim
+1  A: 

Don't use Xcode for setting up your repository. It's SVN handling functionality is very limited. Use another client such as SmartSVN or Versions to import all your projects and then just use Xcode for checking out, updating and committing.

If your projects share a common codebase and have similar release cycles and version numbering then you could structure it like this:

trunk/
    ProjectA/
    ProjectB/
branches/
    ReleaseBranch1/
         ProjectA/
         ProjectB/
    ReleaseBranch2/
         ProjectA/
         ProjectB/
tags/
    Version1/
         ProjectA/
         ProjectB/

If your projects are totally independent, with separate release cycles and versioning then you might prefer this:

ProjectA/
    trunk/
    branches/
          ReleaseBranch1/
          ReleaseBranch2/
    tags/
          Version1
ProjectB/
    trunk/
    branches/
          ReleaseBranch1/
          ReleaseBranch2/
    tags/
          Version1

One other thing to be aware of: try to ensure that your SVN client matches the underlying system version. I think prior to Snow Leopard, the system default was 1.4 but in Snow Leopard it's 1.6.

the_mandrill