Per poter migrare da SourceSafe a Team Foundation Server 2008 il codice sorgente, mantenendo la storia delle archiviazioni, esiste un programma a line a di comando VSSConverter.exe.
I passi da eseguire per la migrazione non sono complessi ma, richiedono un po’ di attenzione.
Sul sito di msdn c’è un articolo abbastanza chiaro che illustra i passaggi che possono essere riassunti così:
- Sulla macchina di migrazione devono essere installati Visual SourceSafe 2005 e TfsExplorer 2008.
- Avere accesso a una istanza di Sql Server, per appoggiarsi nella migrazione (anche una express va bene).
- A livello di credenziali dobbiamo conoscere al password di admin di SourceSafe ed eseguire il processo di migrazione con un utente con i diritti di accesso a Sql Server e a Tfs
- A questo punto creiamo un file di configurazione che verrà usato da VSSConverter
<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
<Source name="VSS">
<VSSDatabase name="D:\VSS\" />
<UserMap name="VSSConverterUser.xml" />
<SQL Server="192.168.168.1" />
</Source>
<ProjectMap>
<Project Source="$/CodeSourceSafe" Destination="$/CodeTfs"></Project>
</ProjectMap>
</ConverterSpecificSetting>
<Settings>
<TeamFoundationServer name="192.168.168.2" protocol="http" port="8080" />
<Output file="Analysis.xml"></Output>
</Settings>
</SourceControlConverter>
VssDatabase indica la cartella che contiene il file srcsafe.ini
UserMap è il percorso di un altro file xml che descrive il mapping degli utenti
SQL Server indica l’indirizzo del server sql che viene usato come base di appoggio
ProjectMap contiene la lista di mapping tra percorsi dei progetti da sourcesafe e tfs
TeamFoundationServer indica il server tfs di destinazione
- Una volta completato il file di mapping possiamo lanciare da riga di comando VSSConverter Analyze FilediConfigurazione.xml
Il programma analizzerà il source control e ci segnalerà eventuali errori o warning, in più creerà il file VSSConverterUser.xml con l’elenco degli utenti che anno effettuato archiviazioni per i project path indicati. - Possiamo modificare il file di mapping degli utenti.
<?xml version="1.0" encoding="utf-8"?>
<UserMappings>
<UserMap From="Roberto" To="Domain\Roberto" />
<UserMap From="UserSourceSafe" To="Domain\User" />
</UserMappings>
- A questo punto possiamo lanciare l’importazione vera e propria con il comando VSSConverter Migrate FilediConfigurazione.xml
- Ultimo passo dopo aver letto l’ultima versione da Tfs dobbiamo scollegare il progetto da SourceSafe e ricollegarlo a Tfs
Su codeplex esiste un programma che aggiunge la gui per VSSConverter, sfortunatamente si basa su Tfs 2005 ma, scaricando i sorgenti e modificando i riferimenti e qualche istruzione è possibile utilizzarlo anche con Tfs 2008.