Friday, August 31, 2007 9:22 AM
In the coming months we will be taking over a decently sized codebase (~ 400 KLOC) from another team. This team is currently doing all development inside of Team Foundation server, but we do not wish to continue this trend. We use Subversion in house and, as such, this new project will be living happily in our Subversion repository.
So here's my question to you...does anyone know how to migrate a Team Foundation repository into a Subversion repository? The worst case scenario is that we always have the option to simply get the latest version of the code from Team Foundation, check it into Subversion, and just go from there. The disadvantage here is that we'll be "forgetting the past" so to speak which, to be honest, doesn't really bother me as much as it probably should. However, I would prefer to be able migrate all of the history into Subversion if at all possible.
Does anyone know of a way to do this? Here are a few options we've talked about so far...
- Find a tool, commercial or FOSS, that will simply convert the Team Foundation database into a Subversion database. Although this would by far be the cleanest solution, I'm assuming that the Team Foundation database is proprietary (?) so no such tool would exist.
- Write a script that will start at the beginning of our Team Foundation history and simply check out each version, check that version into Subversion, and rinse and repeat until up to date. I've tried this before going from Source Safe to Subversion and although it can work it's generally very fragile, slow, and not incredibly reliable.
- Convert Team Foundation back into Source Safe, and then convert from Source Safe to Subversion. This would definitely be an option, I'm guess that there's no way to export a Team Foundation database into Source Safe.
We also have the option of keeping our Team Foundation history on a single machine running Team Foundation simply to make the history available to us if we need it, but I'd really like to avoid that if at all possible for obvious reasons.
Has anyone had any experience with this or have any suggestions how to proceed? Any help would be
greatly appreciated.