2010-11-29 5 views
6

J'utilise Mercurial pour développer un projet client. Après que j'ai travaillé dessus pendant 2 semaines, le client a maintenant demandé que je garde tout le code dans leur repo SVN. Je souhaite continuer à utiliser Mercurial pour le développement, mais pour que le client reste satisfait, exporter toutes les validations (avec messages) dans SVN.Symétrie un référentiel Mercurial dans Subversion?

Est-ce possible?

Répondre

3

Vous pouvez utiliser Mercurial comme client dans leur référentiel subversion.

Avez-vous déjà vérifié hgsubversion? Cela vous permet d'avoir l'historique complet dans Mercurial.

Voir les détails à: https://www.mercurial-scm.org/wiki/WorkingWithSubversion

Il propose trois façons de travailler avec Subversion. Assurez-vous que vous en utilisez un et ne les mélangez pas.

  1. Avec hgsubversion
  2. Avec MQ
  3. extension Convert

[Expérience personnelle]

J'ai trouvé hgsubversion mieux comment jamais, il peut avoir des problèmes lors de la conversion du repo suversion à un Mercurial repo.

# This usually fails for a svn repo with 
# large history or large files in revchanges 

hg clone svn+http://.../svn local-hg 

# If the above has any issues and dies before converting the repo, use hg pull 
hg pull 

Question: Vous avez déjà un repo existant.

  1. Je pense que la meilleure façon serait de créer un autre repo Mercurial de la prise en pension de subversion en utilisant l'une des méthodes ci-dessus.
  2. Tirez votre changement jeux dans ce nouveau repo de la plus ancienne pour obtenir tous les changements et l'histoire de la précédente
  3. Maintenant, vous êtes prêt à soumettre les modifications au référentiel svn
+0

voilà ce que cette solution permettra moi de continuer à utiliser mon * exist * hg repo, pour synchroniser les changements dans leur repo SVN? Encore mieux serait la capacité de tirer de nouveaux changements de SVN (au cas où quelqu'un apporterait des changements de leur côté aussi). Serait-ce faisable? –

+0

@Jon L .: Oui, vous devrez cloner le svn repo en utilisant l'une des trois méthodes. Cela vous permettra d'utiliser Mercurial en tant que client pour subversion. Ensuite, vous devrez synchroniser ce nouveau repo avec vos modifications de repo plus ancien via hg pull. Ensuite, utilisez le nouveau repo pour envoyer les modifications à svn repo. – pyfunc

+0

Eh bien ... cloner un repo vide à partir du serveur svn, puis hg tirer vos modifications de votre repo hg actuel. – jkerian

Questions connexes