Il y avait deux caractéristiques que nous utilisions pour convaincre la direction et l'équipe de préférer SVN à VSS.
1) La possibilité de créer des branches. En utilisant VSS, lorsqu'une version était programmée pour sortir, l'ensemble du référentiel était verrouillé jusqu'à ce que la version sorte effectivement. Cela incluait le cycle de test et de correction. Ainsi, les développeurs étaient incapables de commettre tout ce qui est autres que les correctifs pour la version au référentiel VSS. Cela a donné lieu à de longues sessions d'intégration immédiatement après chaque version. Avec l'utilisation des branches de version dans SVN, il n'est plus nécessaire de verrouiller l'ensemble du référentiel.
2) La possibilité d'annuler un changement entier en une seule fois. Parce que SVN enregistre tous les fichiers modifiés dans un seul commit atomique, il est trivial de revenir sur un changement problématique. Dans VSS, un développeur devait parcourir l'ensemble du référentiel, trouver tous les fichiers modifiés à peu près au même moment et annuler chaque changement sur chaque fichier individuellement. Avec SVN, c'est aussi trivial que de trouver le commit pertinent et d'appuyer sur le bouton " Revenir sur les changements de ce commit " dans TortoiseSVN.
A titre d'information, nous utilisons TortoiseSVN et tout le monde aime les icônes de superposition de fichiers pour voir ce qui a été modifié ou non.