Voici le scénario que j'ai. J'ai un dépôt cvs dans un endroit (A) et je veux le répliquer et le garder en synchronisation avec un dépôt dans un autre endroit (B). Ce serait une synchronisation directionnelle unique de A à B. Quelle est la meilleure façon de faire cela? Si ce n'est pas vraiment possible dans CVS, quel système de contrôle de code source recommanderiez-vous pour accomplir ceci? MerciQuelle est la meilleure façon de répliquer un référentiel de contrôle de version?
Répondre
Lors de l'utilisation de CVS, je ne connais pas d'autres outils pour le faire que la synchronisation de fichiers. Vous pouvez y parvenir en utilisant des outils tels que rsync
(Unix) ou xcopy
/robocopy
(Windows).
Si vous envisagez de migrer vers Subversion, il fournit un outil appelé svnsync qui permet de synchroniser un référentiel depuis un autre.
Je vous recommande de migrer de CVS vers un système de contrôle de version distribuée approprié tel que git, qui fournira ce genre de fonctionnalité très naturellement. Subversion fournit également svnsync qui fait le même genre de chose.
Si vous utilisez l'approche rsync/filecopy avec CVS, il est important de synchroniser uniquement les fichiers à un moment où il n'y a pas de validation active. Sinon, le fichier de verrouillage du référentiel sera copié et vous ne pourrez pas extraire/mettre à jour du côté de la cible avant la prochaine synchronisation. Cette seule raison peut rendre CVS mauvais choix.
Le chemin de migration de CVS à Subversion est assez fluide et il existe des outils pour importer un dépôt CVS complet, avec historique, dans Subversion. Envisagez Git ou Mercurial si vous voulez obtenir un vrai versionnement distribué, mais il semble que ce serait exagéré pour vos besoins en "lecture seule".
Le meilleur (et peut-être la plus coûteuse) est ainsi Clearcase Multisite
Mais si vous cherchez opensource, Git devient rapidement le remplacement svn partout ..