Pour des raisons très pratiques en interne, nous nous sommes retrouvés à vouloir migrer l'ensemble de nos projets sous VSS vers SVN. Le processus de migration serait plus simple si nous ne voulions pas garder l'historique ainsi que les labels... Soit, en ayant un peu recherché sur google, je suis tombé sur cet outil : VSSMigrate. Il n'a pas été facile de l'utiliser, alors, je partage avec vous comment y parvenir Smile.

Quelques prérequis :

VSSMigrate a besoin d'un fichier .ini pour pouvoir parvenir à réaliser cette migration. Pour des raisons toujours pratiques, je l'ai appellé mon fichier de configuration VSSMigrate.ini.
Voici le contenu de ce fichier VSSMigrate.ini



[Settings]
VSSWIN32=C:\Progra~1\Mi53b4~1\
# VSS\Win32 directory which contains ss.exe
# J'Utilise le nom dos 8.3 car le programme n'aime pas les espaces .... (dir /x vous affiche le nom court!)

VSSDIR=\\VSSServer\VSSFolder
#VSS repository directory (contains srcsafe.ini)
#use environment variable SSDIR to set the current repository.
#PENSEZ à enregistrer la variable SSDIR dans les variables d'environnement avec la commande juste ci-dessous.
#set
SSDIR=\\VSSServer\VSSFolder\


VSSPROJ=$/YourProject/
#VSS project to start at (ie $/Product)

VSSUSER=myUserName
#User to use for VSS commands, use blank for none

VSSPASSWORD=myPassword
#password to use for VSS commands, blank is OK

SVNWIN32=C:\Progra~1\Subversion\bin
# SVN\bin directory which contains svn.exe

SVNUSER="first last"
#User to use for SVN commands, use blank for none, use quotes for two names

SVNPASSWORD=
#password to use for SVN commands, blank is OK

SVNURL=file:///C:/Repository/
#URL to use for the root of the check in

SVNPROJ=$/ProjectNameUnderSVN
#VSS project to start at (ie $/Product)

WORKDIR=c:\test
#Directory under which files and directories will be created as work progresses

DEBUG=1 #turn on debug output, blank is OK
AUTORETRY=0 #if a command fails to run, it will be run automatically 1 time before failing




Pour lancer VSSMigrate, il faut utiliser la ligne de commande VSSMigrate.exe fullPathToConfigFile

Je dis bien le chemin complet, sinon, ça ne passera pas.

Bon, après, il y a eu un "petit" souci que je n'ai pas voulu modifier dans les sources (qui sont aussi disponibles mais en C++ ;p). Pour chaque fichier récupéré depuis VSS, il faudra qu'il soit committé de nouveau vers SVN.
ça fonctionne bien, excepté qu'à certains moments, le programme prompte en nous demandant d'inscrire une nouvelle heure ...  Après avoir analysé un peu tout ça, j'ai remarqué que pour chaque fichier et version qu'il committait, il chantait la date système (en fonction de la date de version).  Il faudra donc penser aussi à la remettre comme elle était auparavant si elle s'est déréglée...


Si tout s'est bien passé, l'ensemble de vos sources sur VSS seront migrées sur votre SVN local. Je l'ai fait pour des raisons (encore) pratiques et à des buts de tests, car je ne savais pas si il y avait des chances que ça plante en cours...

Restera donc plus qu'à migrer de votre SVN local au Server SVN (tâche plus facile bien entendu Stick out tongue).

Bonne Migration et à bientôt !