2010-03-14 6 views
1

J'utilise hg-subversion, et j'ai 2 dépôts hg différents de notre tronc de svn, et un d'une branche du tronc . Je voudrais les lier d'une manière ou d'une autre. À un certain moment dans l'histoire, les deux référentiels Hg seront identiques, y a-t-il un moyen de les rejoindre? En d'autres termes, existe-t-il un moyen de relier les dépôts à l'intérieur de Hg?Mercurial Comment fusionner 2 référentiels partageant un ancêtre commun mais qui ne sont pas des clones du même référentiel

La technique que j'utilise actuellement consiste simplement à exporter le deuxième dépôt par dessus la copie de travail de la révision qu'ils partagent, puis à valider cette copie de travail comme une branche dans Hg, mais je perds l'historique de cette façon.

Tout conseil serait grand

+0

Ceci est une copie de: http://stackoverflow.com/questions/12843/how-to-combine-two-projects-in-mercurial –

Répondre

1

Vous pouvez essayer d'importer les deux prises en pension dans l'un comme sans rapport, puis de les fusionner. (Quand vous dites qu'ils partagent un ancêtre commun, voulez-vous dire que ces ancêtres ont le même ID de révision? Si oui, il y a une bonne chance que cela fonctionne bien.)

hg clone repoA 
hg pull -f repoB # may not need -f 
hg merge 
+0

ils ont un ID de révision SVN partagé oui, car l'un est en fait une branche . – sylvanaar

1

Pouvez-vous re-clone Subversion référentiel, donnant la racine du dépôt Subversion en argument au lieu du tronc ou de l'une des branches? J'ai utilisé hg clone svn+ssh://foo/bar/baz une fois, où svn+ssh://foo/bar/baz/trunk était le tronc et svn+ssh://foo/bar/baz/branches/quux était une branche, et à la fin j'avais deux branches nommées dans Mercurial, la branche "par défaut" représentant le tronc Subversion et la branche "quux" représentant la branche Subversion du même nom.

Si vous avez des changesets sortants dans vos repos hg existants, il se peut que vous soyez un peu lié. S'il n'y a que quelques changesets sortants, il peut être utile d'activer l'extension mq et de convertir les changesets en patches. Ces patches peuvent ensuite être réappliqués sur le nouveau clone (dans la branche nommée appropriée) et éventuellement transmis à Subversion.

+0

Merci pour les suggestions. Je vais certainement les essayer – sylvanaar

Questions connexes