Question

J'ai créé un miroir Mercurial d'un dépôt SVN (en utilisant ce tutoriel: http://oreilly.com/opensource/excerpts/opensource-mercurial/migrating-to-mercurial.html ). La synchronisation fonctionne très bien, sauf que je l'ai remarqué qu'il n'est pas ramasser un référentiel externe qui est référencé dans le principal SVN repo ...

Je idéalement comme pour être en mesure de tirer tout comme une prise en pension unique en Mercurial (avec changesets si possible).

Ce que je ne suis pas sûr est: est la limitation externe d'un manque de svnsync, ou une limitation de hg convert

Est-il possible que je peux forcer l'extérieur à être synchronisés et, dans le même repo Mercurial?


Je pense une bonne solution serait de mettre en place le processus de synchronisation tout recommencer, pour l'extérieur. Créer une fourche du miroir de courant hg, et synchroniser l'extérieur dans la fourchette de miroir hg.

Le hic avec c'est, le tronc externe est destiné à entrer dans un sous-dossier du premier miroir, alors comment puis-je reproduire ce avec convertir? Je doute que je pourrais dire convertir à importer dans un sous-dossier ...

Était-ce utile?

La solution

  

est la limitation externe d'un manque de svnsync ou une limitation de hg convertir?

svnsync est utilisé pour créer un miroir d'un dépôt SVN. Cela inclut toutes les propriétés svn:externals . Par conséquent, il doit être une limitation de hg convert.

Notez que vous n'avez pas vraiment besoin de créer un miroir avec svnsync. L'article recommande ce seulement parce que d'avoir une copie locale pourrait accélérer le processus de conversion.

  

Est-il possible que je peux forcer l'extérieur à être synchronisés et, dans le même repo Mercurial?

Il est courant pour un dépôt SVN pour contenir plusieurs projets liés vaguement, chacun avec leurs propres branches et les étiquettes. Mais Mercurial ne fonctionne pas de cette façon: quand vous branche, vous tout sarment qui est dans le référentiel. Vous devez créer un dépôt Mercurial pour chaque projet dans SVN qui a ses propres trunk / branches / tags. Cette approche différente est très probablement pourquoi hg convert ne tient pas compte externals, même si elles sont dans le même dépôt SVN.

Il y a un équivalent de svn:externals dans Mercurial; on l'appelle « subrepositories ». Au lieu d'avoir une ou plusieurs propriétés de svn:externals, vous disposez d'un seul fichier .hgsub avec un contenu similaire à la racine de votre projet. Vous devez d'abord convertir chaque projet SVN à un dépôt Mercurial séparé, puis de les connecter avec subrepositories. Voir la page wiki mercurial pour subrepositories pour plus de détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top