Soy bastante nuevo en git y estoy tratando de mover un repositorio svn a git. Me seguido la siguiente guía por lo que ahora tengo un repositorio git en mi servidor
http://pauldowman.com/2008/07/26/how-to-convert-from-subversion-to-git/Convirtiendo svn a git, ¿cómo conseguir que las ramas no sean solo remotas en el repositorio svn?
Por lo tanto, si lo hago "rama git git" respuestas "* maestro" y si lo hago "rama git-r" i obtener una lista de todas las ramas en el repositorio svn.
Mis últimos svn-checkins han estado en una de las ramas, pero cuando hice el "git svn clone": mis commits en esa rama (aún no se han fusionado en el tronco) son visibles en mi (git) rama principal. ¿Que me estoy perdiendo aqui?
Además, si en mi máquina de desarrollo hago "git clone" obtengo los archivos correctamente. Pero si hago "git branch -r" solo puedo ver la rama principal y no las sucursales remotas ".
Como nos estamos deshaciendo del svn-repo todos juntos, me gustaría tener todas las ramas svn en el git-repo para que se pueda acceder desde los clientes desarrolladores.
Una vez más, no soy un completo novato, pero no muy lejos de él. Si hay algo fundamental que me falta aquí, por favor dígame .
actualización
Después de hacer algunas RTFM (hombre git-svn) he resuelto el primer problema con la materia presente en la rama rama principal
mandos a distancia del tronco/
reinicio --hard Ahora el tronco y la rama principal son los mismos. Ahora, lo siguiente es averiguar cómo obtener las sucursales de los clientes de desarrollo.
Actualización 2
Lo tengo trabajo mediante la combinación de la URL anterior y la url que Scott señaló. Entonces, desde el principio.
por primera vez creado un repositorio vacío en el servidor, que se mantienen en/git-repos/usr/local en nuestro servidor:
server> cd /usr/local/git-repos
server> mkdir my_project.git
server> cd my_project.git
server> git init
Entonces me clonaron el SVN-repositorio para mi dev-máquina (señalar, que en nuestro servidor sVN el directorio "ramas" se denomina "rama" witout la 's'):
dev> git svn clone http://<svn.server>/my_project --no-metadata -A authors.txt -t tags -b branch -T trunk my_project
Entonces algunos de limpieza para conseguir las etiquetas y ramas en orden:
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
Ahora agregue mi servidor como un repositorio remoto:
dev> git remote add origin [email protected]<our_server>:/usr/local/git-repos/my_project.git
Por último, empujar todas las ramas y las etiquetas de seguridad en el servidor:
dev> git push origin --all
Uf, ahora no lo tienes, ahora puede deshacerse de ese svn-repo.
Actualización 3
Pedido ebneters post por debajo de una manera más fácil de hacerlo ...
Utilicé este método en un espejo git de un servidor svn del cual sigo buscando, y esto de alguna manera rompe el historial. Es eso esperado o estoy haciendo algo mal. – Doppelganger