2009-05-15 21 views
10

J'ai joué avec SVN depuis un petit moment et j'en suis arrivé à aimer sa puissance et son expérience utilisateur et que nous pouvons lier à notre système de suivi des bogues pour simplifier la vie de tout le monde. Nous sommes donc arrivés au moment où nous avons décidé de migrer notre configuration VSS 2005 vers SVN et je suis en train de me déconnecter.Est-ce que quelqu'un a migré avec succès VSS 2005 sur SVN?

Il semble qu'il existe un certain nombre d'outils qui prétendent être en mesure de terminer la migration de VSS 2005 à SVN, mais je ne peux pas déterminer lequel est le meilleur ou qui me fournira le plus complet transition. J'ai besoin d'un qui va migrer l'histoire complète à travers plutôt que de simplement vérifier à partir de VSS et de vérifier dans SVN.

J'ai trouvé Polarion SVN Importer qui semble à la fois puissant et hautement configurable, cependant, je ne peux pas obtenir la fichue chose à travailler, il se plaint qu'il ne peut pas tirer la liste de fichiers de $/in VSS. Si j'exécute la même commande, il se déclenche manuellement, tout semble fonctionner correctement, donc je ne peux pas le comprendre. Est-ce que quelqu'un a migré avec succès sa source de VSS 2005 à SVN et si oui, quels outils avez-vous utilisé et quelles ont été vos conclusions? Toutes les mises en garde ou les pièges seraient très utiles, alors sachez aussi bien que tout ce qui était utile/surprenant ou était une déception ou tout simplement dénaturé.

+1

Je compterais jeter tout le dépôt VSS et vérifier la dernière version dans SVN comme un grand succès :) –

+0

Comme il échoue si tôt aux fichiers de liste dans $ /, essayez peut-être un compte non-lecture seule ou un autre compte connu. L'exception ressemble à une erreur de compte ou d'autorisation. Ou peut-être que le compte d'utilisateur unique cause des problèmes. – Ryan

+0

lol @Mehrdad - Je suis enclin à accepter; Cependant, l'exigence d'apporter l'histoire n'était pas la mienne. Je voudrais juste archiver le référentiel existant pour la nostalgie et passer à autre chose. Peut-être qu'un jour nous pourrons l'ouvrir et dire "aww, comme nous étions mignons à l'époque" ... – BenAlabaster

Répondre

6

Essayez la dernière révision de ligne de réseau (application de console) pour VssMigrate on Codeplex pour réorganiser votre historique et générer à nouveau des changesets à partir de votre référentiel VSS. Il ordonnera également vos révisions correctement en fonction du moment où ils ont été archivés.

http vssmigrate.codeplex.com/SourceControl/changeset/view/16890

J'espère que cela aide. Cela pourrait prendre quelques ajustements sur le $/import.

P.S. l'histoire vous aide à savoir qui blâmer en une seule étape plutôt que d'avoir à découvrir si l'annotation est correcte en fonction d'une importation, donc je la trouve plutôt utile. Mieux vaut l'avoir que de ne pas l'avoir en trouvant des bogues dans le code plus ancien.

P.P.S. Vous pouvez même utiliser la nouvelle version de VssMigrate pour réimporter les révisions dans un référentiel subversion, puis fusionner dans toutes les révisions après la dernière révision d'importation de votre révision précédente. Le seul inconvénient est que tout le monde devra obtenir un nouveau check-out du dépôt parce que le nombre de révisions sera considérablement réduit. Fondamentalement, effectuer une nouvelle migration; svnadmin dump actif précédemment référencé migré à partir de rev migré + 1 comme incrémental, puis svnadmin charger dans le référentiel nouvellement migré.

+0

très beau travail sur les mises à jour de VssMigrate jim0301. La veille de leur validation, j'ai ajouté la même fonctionnalité. Quand je suis allé offrir les mises à jour, j'ai vu que vous veniez de les commettre. Et tu as fait un bien meilleur travail que moi. Merci pour votre mise à jour. J'ai migré tous mes dépôts VSS à SVN maintenant pour la semaine passée et n'ai eu aucun problème. Je recommande fortement à tous ceux qui veulent migrer VSS vers SVN de vérifier la dernière validation de la source sur codeplex. (en fait le seul problème que j'ai eu était que je devais re-télécharger log4net et rattacher les libs, je ne sais pas pourquoi) – devSolo

+0

Est-ce que quelqu'un sait si VSSMigrate est compatible avec VSS 6.0d (pas VSS 2005) ?? - Lee –

3

La dernière fois que j'ai essayé c'était il y a des années. Comme le format de fichier VSS n'était pas documenté, pour obtenir un historique complet, le programme de conversion tiers devait utiliser l'API de VSS pour obtenir chaque version de chaque fichier. J'ai laissé cette conversion se dérouler pendant le week-end, vu combien il avait accompli (quelques pourcents), et calculé qu'il faudrait des semaines de temps pour terminer (nous avions des années d'histoire).

Nous avons donc décidé de ne déplacer qu'un instantané du dernier code dans le nouveau système de contrôle de version, et avons conservé une archive de la base de données VSS pour l'histoire.

+0

Merci pour votre contribution, nous avons probablement quelques années d'histoire, mais nous n'avons pas des milliers de projets heureusement juste une poignée alors j'espère que les choses ont avancé depuis ... – BenAlabaster

2

I ont migré avec succès VSS 2005 à SVN il y a plusieurs mois. J'ai utilisé l'outil "VssMigrate.Tim2" qui est apparemment sur CodePlex maintenant comme vssmigrate. Cela a fonctionné correctement sans problèmes majeurs. Il a semblé que les révisions et les horodateurs n'ont pas été commandés tout à fait comme je m'y attendais, mais ce n'était pas un gros problème. EDIT: Avec vssmigrate, vous pouvez choisir de migrer un chemin VSS spécifique (par exemple $/GroupA/ProjectB), ce qui réduit le temps nécessaire à la migration individuelle et rend le processus global moins fragile. Je n'ai pas trouvé le processus trop long bien que nous ayons seulement environ six mois de données dans VSS. J'ai réussi à terminer la migration et la configuration d'Apache + SVN pendant un week-end. Selon la taille de votre référentiel VSS, vous pouvez créer plusieurs référentiels SVN au lieu d'un référentiel unique massif.

Je suis extrêmement heureux que nous ayons quitté VSS, même si la configuration d'Apache + SVN n'était pas très amusante (essais et erreurs). Je considérais Git ou Mercurial, mais ni l'un ni l'autre ne possédait un outil TortoiseXxx fiable ou un plugin VS SCC à ce moment-là. Bien que maintenant Google code a soutenu Mercurial et TortoiseHg semble bon, je suis tenté d'essayer Mercurial bientôt.

+0

Pouvez-vous élaborer sur ce qui n'était pas comme prévu? Ce serait une bonne idée d'avoir ... – BenAlabaster

+0

Il semblait que les numéros de révision créés dans SVN à partir de VSS n'étaient pas classés du plus ancien au plus récent. Je m'attendais à ce que les nouveaux numéros de révision SVN suivent linéairement et séquentiellement dans le temps à partir des versions VSS, mais quand j'ai regardé le journal svn, il ne semblait pas suivre un modèle. Il était simple de trier par datetime dans TortoiseSVN, donc ce n'était pas un gros problème pour moi. J'ai aussi regardé vss2svn mais j'ai décidé de vssmigrate à la place. – Ryan

4

J'ai essayé Polarion et vss2svn il y a environ un an.

Nous avions beaucoup années de code dans VSS, et je trouve que, après tout de la configuration et les tests que je n'étais pas entièrement satisfait des résultats, le processus a été long et fragile, et à la fin, a décidé de commencez simplement avec une importation propre du dernier code.

Il y a eu plusieurs fois au cours de la dernière année où je suis allé à la recherche de l'histoire ancienne, mais pas vraiment beaucoup. Un autre avantage de départ est que votre nouveau dépôt SVN sera très rapide!

+0

D'accord - Nous avons trouvé cette approche «la plus sûre», ce qui signifie que nous contrôlons ce qui se passe, etc.De plus, nous avons modifié la structure que nous stockons le code à l'intérieur de SVN pour travailler avec nos trucs CI - en supposant que cela n'aurait pas été aussi simple avec un outil automatisé? –