2010-06-03 6 views
1

Mon équipe veut commencer un essai d'utilisation de Mercurial sur notre base de code existante stockée dans un dépôt Subversion. Nous souhaitons que certains développeurs utilisent un miroir Mercurial du référentiel subversion et que le reste de l'équipe continue à utiliser le référentiel Subversion existant.Mirroring Subversion Repository Dans Mercurial avec accès commit

J'ai rencontré des articles comme, SubversionToMercurialSync qui permet un accès en lecture seule pour le miroir Mercurial.

Nous voulons être en mesure de tester toutes les fonctionnalités de Mercurial en utilisant notre base de code existante afin que l'équipe puisse continuer le développement. Des outils comme svn2hg nous permettront de tester les fonctionnalités de branchement locales de Mercurial, mais nous souhaitons également pouvoir tester le push, le pulling, la fusion, etc. à partir d'autres référentiels distants. Pour ce faire, nous aurons besoin d'un miroir Mercurial distant avec un accès de validation.

Quelqu'un a-t-il essayé ce flux de travail? Si oui, quels outils/techniques dois-je utiliser pour rendre cela possible?

Répondre

3

Si vous ne faites que l'essayer, utilisez-les simplement en parallèle. Synchronisez manuellement les deux selon vos besoins. Vous pouvez vous familiariser quelque peu avec un repo hg local (non cloné) à petite échelle, mais vous ne serez pas à l'aise avec hg tant que vous n'aurez pas travaillé en équipe. Je ne recommanderais pas garder cette personnalité divisée pendant très longtemps puisque l'histoire aura tendance à être jonchée de messages de validation non utiles comme "grande synchronisation entre hg, svn". Je suggère également de développer seulement sur la branche par défaut dans le double-bac à sable. Si vous voulez expérimenter avec quelque chose sur une branche nommée, essayez-le dans un sandbox hg-only.

Commencez par converting your svn repo to hg

Utiliser développement « bacs à sable » qui contiennent à la fois le .hg et svn sous-répertoires. Vous pouvez probablement copier le répertoire .hg à partir d'un repo cloné.

Idéalement, les développeurs impliqués dans le procès devraient commettraient aux deux années VCS en synchronisation, mais ...

Pour synchroniser manuellement svn hg:

svn update 
hg addremove 
hg commit 
hg push 

Pour synchroniser manuellement hg à svn:

hg pull -u 
(svn add newfiles) 
(svn remove gonefiles) 
svn commit 

Choisissez un nouvelle fonctionnalité qui peut prendre un peu de temps pour se développer (jours à deux semaines), puis commencer à le faire dans un repo hg converti à partir de votre base de svn. Cela vous donnera un avant-goût de la puissante branche et du marquage que manque svn.

Je pense que mon équipe l'a très bien fait. Nous fixons une date de basculement (un mois de sortie). Pendant ce temps, certains membres de l'équipe ont bricolé avec hg et ont acquis un certain niveau de compétence. Cela a joué un rôle dans l'aide des pairs. Nous avons fait un déjeuner & apprendre le jour zéro du passage à mercurial. Nous avons tous apporté nos ordinateurs portables et joué dans le même repo, en changeant de fichiers, en nous engageant, en poussant, en tirant. Les gens étaient prêts à expérimenter parce que c'était des données sans significations. Commencez le repo avec un seul fichier texte, dites aux gens comment cloner/pousser/tirer le repo puis dites-leur de changer quelque chose (ne spécifiez pas quoi). Laissez chacun travailler à son propre rythme. Ils vont créer de nouveaux fichiers, modifier des fichiers, créer des conflits, les résoudre ....

Cette approche nécessite que vous ayez au moins une personne qui connaît assez bien les branchements, et fusionne pour agir en tant que facilitateur.

+0

Avez-vous des suggestions sur la façon de synchroniser manuellement les deux? – austen

+0

voir la version éditée –

+0

Merci pour l'entrée! – austen