views:

592

answers:

4

Are there any import and export tools that would let us move projects into and out of team system with full history and log? Our current SCM is SVN.

PS - Sorry, I know it's a repost, but I didn't get an answer before... :)

+2  A: 

Unfortunately, you probably didn't get an answer because there isn't a good one on offer...

I've looked into this a couple of times before, initially for the first TFS Betas. (At the time we were eager to move away from VSS while waiting for TFS to be ready... the compromise we ended up with then was to use SVN in the interim, but used a post commit hook that kept a VSS repository in sync to allow for that migration path to TFS.)

These guys (ComponentSource) were around back then with a VSS to TFS converter, and added a SVN to TFS one, but appear to have since discontinued the product.

These guys (Kyrosoft) might have some promise, but I'm concerned that they don't post prices, and do post a customer list (of two). If anyone has experience with the product, please let us all know.

More recently the TFS Migration and Synchronization Toolkit has been released on CodePlex, but to date no one has release a SVN plugin for it (there are 66 votes for the request)

So, you can look at rolling your own plugin for the toolkit, but even then you won't get the original dates for commits, as to my knowledge the TFS team haven't allowed a mechanism for importers to set this, so all migrated revisions will have the date of migration.

(The discontinued first tool above purportedly used to allow this, but how they got around the limitation (secret API? adjusting system time? database manipulation?) I don't know.)

In the end, I suspect most teams end up deciding to just switch systems at an appropriate time (eg new version or project), and manually deal with the bifurcated history lookup for the 6-12 months it remains particularly problematic...

Matt Ryan
Thanks. I found no tools either -- looks like I'll stay away from TSS as long as possible :(
Sklivvz
Both tools you mentioned work only one way though. I would still be stuck with TFS.
Sklivvz
A: 

Just thinking out loud here, but does SVN support a way to "play back" its history? If there is a way to generate a complete set of SVN commands from an existing repository, then you could feed those commands to SvnBridge, which would actually be writing into TFS.

Paul Batum
Mumble mumble... it would probably not work, because SVN projects must be mapped to TS projects, also branches, tags... Furthermore we need to import ~20000 revisions! And I want to be able to bail out later -- no way I want to be locked in MS technology!
Sklivvz
A: 

Use KryoSoft. ComponentSource i basically out of business.

David Starr - Elegant Code
+1  A: 

I don't know if you are still interested, but I just went through this with my current employer (my project was using SVN and they wanted to migrate it into TFS at another site).

These are the following steps I used:

  1. Run svndump on your current repo, and take the file to the intended target
  2. Using a svn server (e.g. a local repository) import the file - for this I used VisualSVN Server.
  3. Checkout the SVN repository to a local directory (e.g. svn co <url> Proj_SVN)
  4. Run SvnBridge (from CodePlex) on the same machine
  5. Checkout the TFS repository to a local directory (e.g. svn co http:// localhost:8080/<tfs_server>/<project_repo_path> Proj_TFS)
  6. Using Svn2Svn (from codeplex) I run the following: svn2svn /s:c:\temp\src\Proj_SVN /d:c:\temp\src\Proj_TFS /r:<start_rev>:<end_rev>

Depending on how many revisions, how much data you have and the speed of your network (e.g. it might be faster to run on the TFS server) it could take from 10 minutes onwards to complete each revision.

Anyway this is what I used and it worked for me (painful process though...) - your means might vary.

Matthew Savage