views:

219

answers:

1

I'm investigating migrating a source code repository currently kept under SCCS on an aging Digital UNIX box to Subversion on a Windows box. My initial searching has led me to a python script, sccs2svn, which looks like it would do the job - with some restrictions. A du -sk on the SCCS directory shows it to be about 550MB in size.

From what I can tell, the script runs on a local machine and operates on both SCCS and SVN locally: SCCS through executing SCCS commands directly; SVN through a python module, but also calls svnadmin to create a local directory.

Unfortunately, I need to create the repo on a different server; from what I read in the SVN mailing lists etc, a SVN repo can't simply be copied between servers if the platform is different: an svnadmin dump and restore is required.

The only way I think I can see this working is as a two-stage migration: firstly, to install SVN and python on the existing server, run the script there, then secondly dump the repo out and load it into the Windows SVN - which should work, just slightly more time consuming and requiring a little more disk.

Is anyone aware of a way I could do this without doing it in two stages? Could the python script be modified to act upon a remote repository if the lines to create the repo are commented out? I'll be doing some reading into the Python SVN module, but Python isn't a scripting language I've played with before.

+2  A: 

If you use FSFS backend, you can just move the repository to your target platform. FSFS Repositories are truely platform indipendent. They are also standard setup since svn 1.3 so you should not have any problems by creating the repository and then copy it to your final server via any file transfer.

Peter Parker
Also, you should use FSFS regardless.
Kragen Javier Sitaker
Ah fantastic. That helps. The Windows SVN is running SVN 1.3.2 (at some point it will be upgraded as there are some useful things in the latest SVNs, but there's currently a case of "if it works don't fix it").
Chris J
just to make sure you really get a FSFS-repository, use this command: svnadmin create --fs-type fsfs /PATH/TO/NEW/REPO
Peter Parker