Quiero usar git para clonar un repositorio svn, pero desafortunadamente, cuando svn checkout
obtiene el repositorio con todos los elementos externos, git svn clone
solo obtiene el repositorio sin externos. ¿Cómo puedo obtener los elementos externos del repositorio svn a través del git svn
? No quiero hacer ninguna cosa elegante, solo obtener el repositorio completo con elementos externos.git svn - clon repo con todos los externos
Respuesta
git-svn no es compatible con externos, pero puede probar SmartGit en lugar de git-svn. Admite svn: externals, convirtiéndolos en .gitsvnextmodules y visualizándolos como módulos. La única restricción: debe clonar el repositorio con SmartGit en lugar de abrir el repositorio git-svn existente.
¿Hay herramientas de línea de comandos ¿Podría usar? – wowpatrick
desafortunadamente no hay línea de comando, solo interfaz de usuario –
La siguiente pregunta: [¿SmartGit admite git-svn?] (Http://stackoverflow.com/q/16128118/86967) – nobar
He estado usando git como interfaz para acceder a un repositorio SVN. La estructura en SVN generalmente es bastante simple, de modo que hay un directorio de nivel superior que tiene los elementos externos en él y no externos en los subdirectorios. También lo externo realmente no cambian mucho, una vez que se añaden en Así que asumiendo algo como:.
git svn clone X
cd X
he tenido éxito conseguir todas las cosas externas con el siguiente comando:
git svn show-externals | \
perl -ne 'if (/^\/(.*) (.*)/) { print "git svn clone $1 $2\n"; }' | \
bash
supongo que una una estructura más complicada para los externos requeriría un script de Perl más complicado. Además, si cambian sus efectos externos, tendrá que hacer algo similar nuevamente.
Encontré la técnica anterior muy útil, excepto que tuve que invertir $ 2 y $ 1 (el directorio local y el control remoto) – tutuDajuju
@tutuDajuju me alegro de haberlo ayudado. Gracias por comentar También lo he notado, pero no he dedicado tiempo a investigar por qué el orden cambia en algunos casos. –
¿Quizás la sintaxis del clon cambió entre versiones? Hoy es clone $ url [$ dir_destino] (dir es opcional) – tutuDajuju
que no puedo comentar, así que aquí publicar solución que funciona en mi caso
git svn show-externals | \
awk '/^\// { print "git svn clone "$3" ."$1" "$2":HEAD" }' | \
bash
- 1. git-svn clon | ramas espurias
- 2. git clon del árbol git-svn?
- 3. Reanudar clon git-svn
- 4. -git svn clon o svn2git inesperadamente detener
- 5. recuperarse de Git-Svn clon sin --stdlayout
- 6. SVN externos repo "ya está bloqueado" en la actualización
- 7. Añadir svn repo al repositorio git existente?
- 8. Git repo inside repo
- 9. Obtenga rápidamente una lista de todos los svn: externos para un repositorio de svn remoto
- 10. Cómo leer los cambios de SVN repo
- 11. Reinicializar Git Repo
- 12. Importar volcado SVN Repo en Visual SVN
- 13. Ver todos los `git diffs` con vimdiff
- 14. Pagar SVN svn + ssh repo con subversivo en Eclipse Helios
- 15. ¿Cómo crear un clon git con ramas de un "subproyecto"?
- 16. Git-svn maneja los archivos movidos
- 17. Cómo cambiar los repositorios svn usando git-svn?
- 18. Cómo hacer svn interno: externos
- 19. Cómo reemplazar git repo?
- 20. Clonar varios proyectos SVN con git-svn
- 21. Git Clone en otro Git Repo existente
- 22. crear una nueva rama svn con git-svn
- 23. Clon parcial con Git y Mercurial
- 24. git svn: origen de Delta terminó inesperadamente
- 25. ¿Por qué git-svn dcommit deja commits duplicados en mi git repo? ¿Puedo detenerlo haciendo eso?
- 26. clonación git repo
- 27. llevar git repo a una cierta revisión
- 28. git initialize remote repo
- 29. Git Fetch no funciona con repo desnuda, pero git pull trabaja en repo normales
- 30. Dividir enorme repo git
hay https://github.com/andrep/git-svn-clone-externals – unhammer