Friday, January 7, 2011

Converting from StarTeam to Subversion - Part 2

After spending another month on this I finally managed to get a reasonable import for each project. Links were tricky and I ended up just saving the link location to a file so that I could go back and manually add them to SVN when I was done.
Starteam allowed multiple files with the same name which caused a lot of issues. I also discovered that revision and version labels were handled differently and a revision label could contain files that were dated after it's creating. Doing a difference between a revision and version label would often end up causing a huge mess.
My final working code only used the difference between revision labels to get history. I processed every revision in every branch completely creating tags for every version label as I hit the time stamp for that label. This made it easier to create branches from the tags than try and determine which version of which file should be included.

I hope I never have to do this type of conversion again - a simple task (or so I thought) of converting 15+ years of starteam projects to SVN took me about 3 months of development time which far exceeded the 2 weeks I had set asside for the project.

Our largest project was just not reliably convertable, for this I just took a snapshot of each branch and commited that to SVN - if somone wanted more history they could get it from Starteam :).


  1. We would love to hear more about how you managed to pull content and metadata from StarTeam.

  2. Any chance I can get my hands on that utility?
    I'm now tasked with doing the same StarTeam to SVN migration.
    I'm a C# developer so it sounds like what you described in this post is EXACTLY what I need...

  3. I would also be interested in getting hold of this conversion software as I have to make a similar conversion for a log of StarTeam projects.

    1. See also: