120 votes

Comment migrer/convert de SVN à Mercurial (hg) sur windows

Je suis à la recherche d'un outil permettant de migrer un couple de dépôts SVN Mercurial-vous avec l'histoire, les étiquettes et ainsi de suite.

Je suis l'aide de TortoiseHg (Windows x32), de sorte ConvertExtensions sont rejetés. Il y a quelques infos sur la façon de faire de ce processus sur une machine Linux (hgsvn), mais je n'ai pas une machine Linux disponibles.

Puis-je utiliser ces scripts Python sur Windows? Si oui, que dois-je faire? Ou, ce que d'autres outils puis-je utiliser pour faire de ce processus?

En gros, comment puis-je convertir un projet SVN Mercurial?

93voto

Michael La Voie Points 12445

J'ai juste eu à s'attaquer à ce problème moi-même. J'ai un ordinateur windows XP avec windows serveur d'hébergement VisualSVN Serveur.

J'ai aussi TortoiseHG installé ainsi que le CollabNet Subversion en Ligne de Commande Client.

<Enable Convert Extension w/ Tortoise Hg 2>

Un grand merci à bgever de préciser dans les commentaires avec TortoiseHg 2.0, permettant de convertir extension est plus facile que jamais. Comme il le dit

Avec TortoiseHG 2.0 ce qui a été fait beaucoup plus simple: lancez le TortoiseHG Workbench à partir du menu Démarrer. Sélectionnez Fichier --> Paramètres. Sélectionnez Extensions à partir de la liste. Cochez la case "convertir" case à cocher et cliquez sur OK. Ça y est! Pas de besoin d'essayer de générer le fichier de configuration fichier plus et de recherche dans le fichier système. – bgever 11 Mar à 7:56

</Enable Convert Extension w/ Tortoise Hg 2>

<Enable Convert Extension Manually>

Pour convertir un référentiel à partir de SVN à HG, j'ai suivi ces étapes:

1) Ouvrir C:\Program Files\TortoiseHg\Mercurial.ini

MODIFIER

FYI - Tortoise Hg a migré vers ce fichier

  • XP ou plus - C:\Documents and Settings\nom d'utilisateur\Mercurial.ini
  • Vista ou version ultérieure - C:\Users\USERNAME\Mercurial.ini

Ce fichier sera presque vide, et vous aurez juste la liste de ce que vous souhaitez remplacer. Si c'est ce que vous avez, simple d'ajouter ces deux lignes à la fin du fichier:

[extensions]
convert =

2) recherchez la ligne qui commence par

[extensions]

3) ci-Dessous, vous verrez une liste de mots-clés, commentées par un point-virgule (;) sur chaque ligne

4) Trouver la ligne qui dit

;convertir =

et supprimer le point-virgule afin qu'il lit

convertir =

</Enable Convert Extension Manually>

5) Ouvrez l'invite de commande et accédez au répertoire dans lequel vous souhaitez que la nouvelle hg dossier créé à l' (le processus va créer un nouveau dossier appelé yoursvnreponame-hg dans le répertoire que l'invite de commande est ouvert).

6) Utilisez cette commande

hg convertir le fichier:///y:/yoursvnreponame

J'ai trouvé que le convertir outil peut avoir des problèmes avec le réseau référentiels, donc j'ai eu de mapper un lecteur, mais cela a très bien fonctionné pour moi.

8voto

evilbloodydemon Points 520
<ol> <li>serveur svn démarrage sur localhost</li> <li>Hg convert svn://localhost/your_repo</li> <li>fait, parce que svn bindings nécessaire uniquement pour le protocole file://</li> </ol>

7voto

Chad Birch Points 39087

5voto

SueS Points 63

Pour convertir un Repo SVN pour un HG Repo ET le copier sur un autre serveur, vous aurez besoin de quelques choses.

  1. TortoiseHG installé. (Vérifier quelle version est actuellement en cours d'utilisation)
  2. Installé Python. (Vérifier quelle version est actuellement en cours d'utilisation)
  3. Les Modules Python (vous pouvez les trouver http://pysvn.tigris.org/project_downloads.html)
  4. Vous aurez besoin d'ajouter de l' convert extension de la Tortue. Démarrer le TortoiseHG Workbench à partir du menu Démarrer. Sélectionnez File -> Settings. Sélectionnez Extensions à partir de la liste. Vérifier l' convert case à cocher et cliquez sur OK.

D'abord la conversion...

  1. Il est préférable de mapper le Dossier que le Repo SVN actuelle est à l'ordinateur sur lequel vous travaillez. (c - \\server\folder Ne pas le Repo SVN dossier lui-même. Carte le dossier juste au-dessus) pour Donner au lecteur mappé une lettre, Y:\
  2. Ouvrez une Invite de commande et tapez: CD /D Y:\
  3. À l' Y:\ invite, tapez: hg convert y:/RepoName (utilisez le nom de l'actuel Repo) attention de l'avant et à l'arrière des barres obliques. Celui de la commande est une barre oblique. Aussi, si le nom comporte des espaces, mettez le nom dans les citations. (c - Y:/"My Repo folder")
  4. Maintenant, il doit être en marche et va créer un autre dossier à côté de l'ancien. Et un hg dossier doit être à l'intérieur. IL NE SERA PAS LANCÉ, ET NE PAS LANCER DES!
  5. La conversion est terminée.

Deuxièmement, le clonage...

  1. Ouvrir TortoiseHG Workbench. Aller à l' File -> Clone Repository
  2. Source: Entrez le chemin d'accès complet de l'converties en pensions de titres.
  3. Destination: Entrez le chemin d'accès complet de l'endroit où vous voulez le repo cloné. Il n'est pas nécessaire de créer un dossier à la nouvelle destination que le processus de clonage permettra de créer et initialiser.
  4. Ajouter des autorisations pour le nouveau dossier cloné.
  5. Vous avez terminé!!!

3voto

Lazy Badger Points 30623

Maudite ! Personne ne mentionne pas encore hgsubversion (Extension Wiki), qui peut le faire sans presque n’importe quel mal de tête (à l’exclusion des cas rares et arbres spécifiques).

Juste ajouter extension, activez-le et `` au repo local de mercurial

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X