Click here to Skip to main content
Licence CPOL
First Posted 20 Oct 2011
Views 11,014
Bookmarked 1 time

Migrating from TFS 2008 to SVN 1.6 with tfs2svn

By | 20 Oct 2011 | Technical Blog
This is tricky because tfs2svn stopped being updated when Subversion 1.4 ruled the roost.
A Technical Blog article. View original blog here.[^]

This is tricky because tfs2svn stopped being updated when subversion 1.4 ruled the roost.

Here are the steps that I took:

  1. Have a subversion repository ready to receive the project (including ‘pre-revprop-change’ hook – mine is a simple ‘exit 0’ batch file)
  2. Install TortoiseSVN 1.6
  3. Download Collabnets command line client for svn 1.6 (svn-win32-1.6.15.zip)
  4. Install tfs2svn 1.1 (http://sourceforge.net/projects/tfs2svn/files/tfs2svn/1.1/tfs2svn.setup.msi/download) on my development VM
  5. Extract the svn-win32 command line client and copy the contents of ‘bin’ folder over the contents in ‘C:\Program Files (x86)\Kevin Colyar\tfs2svn\libs\svn-win32-1.4.6\bin’
  6. Checkout revision 104 of tfs2svn using TortoiseSVN (repository url: https://tfs2svn.svn.sourceforge.net/svnroot/tfs2svn)
  7. Save the patch from http://sourceforge.net/projects/tfs2svn/forums/forum/772710/topic/4510118 as tfs2svn_update.patch (make sure all &amp; are converted to & and all links have any <a> tags removed)
  8. Using TortoiseSVN apply the patch to the trunk branch. All the files should be matched successfully. If not check for stray html encoding/links in patch file.
  9. Open the tfs2svn.sln from trunk (upgrading the solution if using VS2008)
  10. Build ‘tfs2svn.WinForms’ and copy the output over the contents of ‘C:\Program Files (x86)\Kevin Colyar\tfs2svn’ apart from the ‘libs’ folder.
  11. Launch tfs2svn and fill in the fairly straightforward form and hit convert!

tfs2svn should now spin through your TFS repository and migrate each changeset to subversion (keeping the history). The few errors that I encountered (after applying the patch!) were easy to fix as they were missing folder (from svn) issues when a changeset included a branch or merge operation. Simply creating and committing the missing folder allowed the migration to continue.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Martin Jarvis

Software Developer (Senior)
Freestyle Interactive Ltd
United Kingdom United Kingdom

Member

Follow on Twitter Follow on Twitter
I'm a lead developer for Freestyle Interactive Ltd where we create many wonderful websites built on Microsofts ASP.Net and Ektron CMS.
 
I've been developing .Net applications (both Windows and Web) since 2002.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
QuestionSVNBridge PinmemberSteveKing21:34 20 Oct '11  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120517.1 | Last Updated 20 Oct 2011
Article Copyright 2011 by Martin Jarvis
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid