2010-11-13 11 views
4

Je souhaite migrer mon projet (https://softsmithy.svn.sourceforge.net/svnroot/softsmithy) de Subversion vers Mercurial. Je travaille sur un miroir local (svnsync, comme décrit au http://panospace.wordpress.com/2010/05/19/svn2hg_part1/). Le nombre actuel de révision svn est: 544 J'utilise la commande suivante pour convertir la subversion du référentiel à un dépôt Mercurial: hg convertir --branchsort --authors svn_users.txt softsmithy-miroir softsmithy-mercurial-toutSvn à Mercurial: Moins de numéros de révision et de balises manquantes

Le référentiel résultant ne contient pas toutes les balises, cependant.

Le référentiel résultant possède également seulement 511 révisions. Je ne suis pas sûr si c'est seulement lié aux étiquettes.

Certaines des balises manquantes marquent un sous-répertoire de joncteur réseau. Cela pourrait faire partie du problème.

Comment puis-je obtenir tous les tags et révisions?

Cordialement, Puce

+0

Malheureusement, ce pourrait être quelque chose que la liste de diffusion Mercurial peut aider. Je vous souhaite bonne chance pour l'avoir converti, je sais à quel point il est important de conserver l'ancienne structure de l'étiquette. – jcolebrand

+0

Je n'aime pas m'inscrire aux listes de diffusion pour une seule question, mais vous avez peut-être raison. Je l'ai posté ici. (Vous n'avez pas encore le lien d'archive.) – Puce

Répondre

0

Vous pouvez lire les balises subdir et le problème qu'ils causent et comment le réparer sous cvs2hg: Mercurial backend for cvs2svn

L'outil cvs2hg pourrait également aider à convertir en Mercurial si vous pouvez convertir SVN à CVS sans perte d'information. Il peut être configuré pour être adapté au type de conversion que vous voulez faire (il n'y a pas de traduction 1: 1, une interprétation a lieu).

+0

Hmm, je ne me sens pas à l'aise avec la conversion en CVS. Je pense que je pourrais perdre beaucoup d'informations (par exemple, l'historique des fichiers, lorsque les fichiers ont été renommés/déplacés). Ou ne voyez-vous pas des problèmes et c'est sécuritaire? – Puce

+0

Oui, c'est vraiment un problème, rename l'histoire sera probablement perdu en allant sur CVS, OTOH la gestion des tags de cvs2hg est beaucoup mieux et plus flexible. Je crains que vous ne puissiez pas tout avoir ici. Eh bien, compte tenu de la sécurité, vous pouvez essayer différentes façons et comparer les résultats, ce n'est pas que la conversion est destructrice. –

2

Vous pouvez réessayer la conversion en utilisant le hgsubversion extension. Il est conçu pour permettre l'utilisation bidirectionnelle d'un référentiel Subversion à partir de Mercurial, mais en conséquence, il peut parfois mieux gérer une simple conversion unidirectionnelle (et plus rapidement).

Cependant, ni la version hg convert ni la version hv ne seront capables de gérer automatiquement les balises subdir. Vous devrez peut-être ajouter manuellement les tags après la conversion. Si vous utilisez une version actuelle de hg (> = 1.6), cela peut se faire assez facilement:

$ svn log svn://example.com/original/repo/tags/subdirtag # note revision number 
$ hg tag -r 'svnrev(X)' TAGNAME       # X is revision number 
+0

Bonjour Kevin, Merci pour votre réponse. Oui, j'ai aussi trouvé hgsubversion, et il semble faire le meilleur travail (par exemple, hg convert a lâché des historiques de fichiers déplacés). J'ai ensuite utilisé hg convert pour un nettoyage (par exemple, renommer des utilisateurs). La commande hg tag n'a pas fonctionné comme indiqué, mais j'ai utilisé l'outil de visualisation hg pour créer les balises manquantes manuellement (moins de balises manquaient). La seule chose: j'ai maintenant deux petites branches et environ 10 têtes dans le repo, dont je n'ai pas vraiment besoin. Existe-t-il un moyen facile de supprimer ceux sans corrompre le repo? – Puce

Questions connexes