Je suis assez nouveau à git et j'essaye de déplacer un dépôt svn vers git. J'ai suivi le guide ci-dessous maintenant j'ai un git sur mon serveur
http://pauldowman.com/2008/07/26/how-to-convert-from-subversion-to-git/Conversion svn en git, comment obtenir les branches ne pas être juste à distance dans le svn repo?
Donc, si je fais « git branch » réponses git « * maître » et si je fais « git branch -r » je reçois un liste de toutes les branches dans le dépôt svn. Mes derniers svn-checkins ont été dans l'une des branches, mais quand j'ai fait le "git svn clone" -stuff mes commits dans cette branche (ils n'ont pas encore été fusionnés dans le tronc) sont visibles dans mon (git) branche maîtresse. Qu'est-ce que j'oublie ici?
Aussi, si je sur mon ordinateur de développement fait "git clone", je récupère les fichiers. Mais si je fais "git branch -r" je ne peux voir que la branche master et non les branches distantes "
Puisque nous nous débarrassons du svn-repo tous ensemble je voudrais avoir toutes les branches svn dans le git-repo pour qu'on puisse y avoir accès depuis les clients développeurs
Encore une fois, je ne suis pas un débutant total, mais pas si loin. .
Mise à jour
Après avoir fait quelques RTFM (homme git-svn) Je résolu le premier problème avec des trucs de branche présent dans la branche master
reset --hard/télécommandes tronc
Maintenant, le tronc et la branche principale sont les mêmes. Maintenant, la prochaine est de comprendre comment obtenir les branches des clients de développement.
Mise à jour 2
Je l'ai travail en combinant l'URL ci-dessus et l'url que Scott a souligné. Donc, depuis le début.
J'ai d'abord créé un référentiel vide sur le serveur, ils sont conservés dans/usr/local/git-repo sur notre serveur:
server> cd /usr/local/git-repos
server> mkdir my_project.git
server> cd my_project.git
server> git init
Alors je clonée le dépôt svn à mon dev-machine (noter que sur notre serveur svn la « branches » dir est appelée « branche » subjets le « s »):
dev> git svn clone http://<svn.server>/my_project --no-metadata -A authors.txt -t tags -b branch -T trunk my_project
Puis un peu de nettoyage pour obtenir les étiquettes et les branches dans l'ordre:
dev> cp -Rf .git/refs/remotes/tags/* .git/refs/tags/
dev> rm -Rf .git/refs/remotes/tags
dev> cp -Rf .git/refs/remotes/* .git/refs/heads/
dev> rm -Rf .git/refs/remotes
Maintenant, ajoutez mon serveur comme dépôt distant:
dev> git remote add origin [email protected]<our_server>:/usr/local/git-repos/my_project.git
Enfin, pousser toutes les branches et les étiquettes sur le serveur:
dev> git push origin --all
Ouf, maintenant il vous l'avez, maintenant, je peut se débarrasser de ce svn-repo.
Mise à jour 3
Commander ebneters post ci-dessous pour un moyen plus facile de le faire ...
J'ai utilisé cette méthode sur un miroir git d'un serveur svn à partir duquel je continue de chercher, ce qui casse l'histoire. Est-ce prévu ou suis-je en train de faire quelque chose de mal? – Doppelganger