2012-01-06 3 views
1

Nous avons le référentiel svn à distance et nous voulons le convertir en git. Pourriez-vous s'il vous plaît me dire comment est-il possible de le faire sur Windows? Merci.comment convertir svn repository en git sur Windows

+1

duplication possible de [Y at-il un client Windows git-svn quelque chose comme TortoiseSVN?] (Http://stackoverflow.com/questions/894360/is-there-a-git-svn-windows-client-something-like -tortoisesvn), en particulier cette réponse est applicable: http://stackoverflow.com/a/1090761/19746 – Piskvor

+0

Pour autant que je puisse juger TortoiseGit est seulement client git, non? J'ai demandé à propos du référentiel svn converti en référentiel git. – Oleg

+0

@userwhatever: Comme vous n'avez apparemment pas cliqué et/ou lu le second lien (nb: cité comme "particulièrement applicable"), laissez-moi vous le donner à la cuillère: "TortoiseGit (http://code.google.com/p/tortoisegit /) a ajouté un support de base pour git-svn dans la version 0.8.1.0 ". Comment est-ce * non * applicable? Être spécifique. – Piskvor

Répondre

0

Vous pouvez utiliser git-svn qui est un outil qui vous permet de convertir des dépôts svn en dépôts git. Voir le git documentation pour plus d'informations.

+0

Est-ce que cela fonctionne sur Windows? – Oleg

+0

http://stackoverflow.com/a/351321/295756 yup :) – hoppa

+0

Je suis désolé. Je ne peux pas te comprendre. Pourriez-vous s'il vous plaît expliquer un peu plus? – Oleg

0

Installer l'application sur Windows:

Découvrez le dépôt svn URL et copiez

Quelque chose comme ceci:
enter image description here

Invoke TortoiseGit dialogue Clone

Righ t cliquez sur le dossier de destination, par ex. D:\SVN\ToGit et cliquez sur Git Clone...
enter image description here

Cochez la case From SVN repository

enter image description here

Si vous avez copié l'URL d'abord, puis invoquer le dialogue clone, TortoiseGit va obtenir l'URL copié du presse-papiers et coller dans le champ de texte URL pour vous. Donc, vous ne le collez pas vous-même. Il suffit de regarder pour voir si c'est correct. Si vous cliquez avec le bouton droit de la souris sur le dossier de destination, TortoiseGit remplit également le champ de texte Directory pour vous. Aussi, jetez un oeil pour voir si c'est ce que vous voulez.

Donc, cochez simplement la case From SVN repository.

Et si le référentiel svn a la disposition standard, disons trunk, tags, branches, vous n'avez rien d'autre à faire.

Cliquez sur le bouton OK pour aller

Puis, à partir de cloner un dépôt svn référentiel git.
Quelque chose comme ceci:

enter image description here

Comme vous pouvez le voir, juste TortoiseGit utilise correctement Git pour commande Windows git svn clone pour cloner.

git.exe svn clone "svn://svn.code.sf.net/p/tortoisesvn/code/" "D:\SVN\ToGit\tsvn" -T trunk -b branches -t 

Donc, fondamentalement, vous pouvez aller Git Bash/CMD et la réutilisation de cette ligne commande, et aussi obtenir le même résultat.

REMARQUE: Si vous pouvez voir le r1, r2, r3 ..., vous pouvez arrêter à tout moment le clonage, et le reprendre plus tard en utilisant la même ligne de commande.


Clone un référentiel local svn

Avec TortoiseGit 2.4.4+

copie juste le chemin local svn dans l'URL de dialogue Clone. Voir:
enter image description here
Encore une fois, Cochez la case From SVN repository

Clonage:
enter image description here

TortoiseGit 2.4.4+ utilisera file:/// protocole pour cloner un dépôt svn local. Après avoir récupéré un dépôt git, vous pouvez y effectuer un commit à l'adresse suivante: Et repoussez le commit dans le dépôt svn d'origine en utilisant TortoiseGit ->SVN DCommit..., quelque chose comme svn commit.

enter image description here

enter image description here

Comme vous pouvez le voir, la commande est git svn dcommit.

Et si le dépôt svn d'origine a une nouvelle commit (s) besoin de mettre à jour, vous pouvez utiliser TortoiseGit ->SVN Rebase chercher le svn commit puis fusionner/rebasage sur la dernière validation. Quelque chose comme svn update.

enter image description here

Il utilise git svn fetch utilise ensuite git rebase pour fusionner/rebasage les modifications extraites.

enter image description here

Pour la ligne de commande, vous pouvez simplement utiliser git svn rebase.


Lisez Pro Git v2 - Chapter 9 pour plus d'informations et d'exemples.

Questions connexes