usuarios tortoise repositorio password desvincular create crear carpeta administrar svn git-svn tortoisegit

password - ¿Instrucciones sobre el uso de TortoiseGit para interactuar con un repositorio SVN?



tortoise svn server (8)

He estado usando TortoiseSVN en Windows durante años con repositorios de sistemas de archivos locales para mis propios proyectos. Estoy planeando comenzar a colaborar con un amigo en uno de los proyectos, y voy a cambiar el repositorio a mi propio sitio web. ¡He leído mucho "git beats SVN!" mensajes en los últimos años, y pensé que debería al menos ver de qué se trataba el alboroto. Algunas investigaciones revelaron el comando "git svn", y que TortoiseGit afirma tener cierto nivel de soporte git-svn. Me gusta la idea de mantener el repositorio SVN y hacer algunos commit locales o ramas con git antes de enviarlos al repositorio. El comando "shelve" también suena útil.

Desafortunadamente, si bien hay una serie de tutoriales CLI git-svn, no hay nada para TortoiseGit (que, sin duda, parece estar todavía en desarrollo temprano). Como resultado, tengo problemas tratando de descubrir qué flujo de trabajo necesito para que estas piezas cooperen.

Tengo un repositorio SVN en D: / Projects / repositories / MyProject. Creé D: / Projects / temp / gittest, e intenté hacer un "Git Clone" TortoiseGit del repositorio. A partir de ahí, tuve problemas al tratar de indicar la ubicación de las carpetas troncales / ramas / etiquetas (que son solo el diseño estándar en mi repositorio). Solo pude obtener resultados útiles cuando los dejé sin marcar. Cuando parecía que el repositorio de git comenzaba correctamente, pude hacer algunos cambios y hacer un par de commits de git, pero luego tuve problemas para hacer una DCommit de SVN.

Por lo tanto, espero que alguien presente pueda proporcionar un conjunto razonablemente detallado de instrucciones sobre cómo usar correctamente TortoiseGit con un repositorio SVN existente (con el repositorio en el sistema de archivos local o en un servidor remoto). No, "¡no use SVN!" respuestas, por favor - Estoy interesado en aprender cómo hacer para que estas dos piezas trabajen juntas. Si crees que el soporte SVN de TortoiseGit no es lo suficientemente maduro como para hacer que esto funcione, esa también sería información útil.

¡Gracias!


  1. Crea un directorio
  2. haga clic derecho, "Git Clone ..."
  3. Habilite "Desde el repositorio SVN" y seleccione todas las configuraciones adicionales

Esto es probablemente obvio ahora, pero tortoisegit ahora tiene soporte integrado para git-svn.


Puede intentar utilizar TortoiseGit sin soporte SVN integrado, más bien como un cliente habitual de Git. Para que esto funcione, puede instalar SubGit en el repositorio SVN.

A continuación, he enumerado algunas instrucciones básicas sobre cómo configurar SubGit:

$ subgit configure SVN_REPOS # Adjust SVN_REPOS/conf/subgit.conf to specify your branches and tags # Adjust SVN_REPOS/conf/authors.txt to specify git & svn authors mapping $ subgit install SVN_REPOS ... $ INSTALLATION SUCCESSFUL

Después de la instalación, puede encontrar el repositorio de Git en SVN_REPOS / .git y trabajar con él como con el repositorio de Git normal. Cada git push realizado por TortoiseGit desencadena ganchos pre-recibidos y posteriores a la recepción que replican las modificaciones entrantes en el repositorio SVN.

Para obtener más información, consulte la documentación de SubGit y la página de comparación de git-svn .

A partir de la versión 2.0 (aún no publicada en el momento de la publicación) SubGit permite sincronizar repositorios de Subversion y Git ubicados en diferentes hosts.

SubGit es una herramienta comercial, pero es gratuita para repositorios con hasta 10 committers y para proyectos académicos y de código abierto.

Descargo de responsabilidad: soy uno de los desarrolladores de SubGit.


Puede ser que puedas poner tus proyectos en github que soporte un acceso svn . Entonces puede continuar usando TortoiseSVN y colaborar con otros. Por otro lado, puedes usar cosas como sourceforge, etc. para colaborar a través de SVN en lugar de git. Por cierto, ¿por qué no usar git svn clone URLOfTheSVNRepos y luego hacer git commits en su lugar.


Se ha notado antes, solo ponerlo aquí como una respuesta adecuada :)

TortoiseGit ahora tiene soporte para SVN, por lo que debería funcionar bien.



Utilicé msysgit desde http://msysgit.github.com/ para poder extraer desde el repositorio de subversión que requiere aceptar certificado de seguridad y otras opciones de símbolo del sistema. Una vez que se ha extraído el código, he podido usar TortoiseGit para la mayoría de las funciones (excepto para el empuje de svn AFAIR)


Actualización: Respuardo mi respuesta a la pregunta tal como está escrita ("Estoy planeando comenzar a colaborar con un amigo ..."), pero si quiere / necesito mantener Subversion, prefiero mi flujo de trabajo de git-svn .

La única razón por la que git-svn existe es permitir el uso de Git junto con una infraestructura de Subversion existente. Como esencialmente no tienes infraestructura, no hay absolutamente ninguna razón para no cambiar por completo a Git. git-svn es mejor que svn, pero debe evitarse si es posible.

Le recomiendo encarecidamente que git svn clone -s --no-metadata <path_to_svn> luego olvide que alguna vez tuvo svn.