GitHub admite clientes de Subversion por medio del protocolo HTTPS. Utilizamos el puente de Subversion para comunicar los comandos svn a GitHub.
Funciones de Subversion admitidas en GitHub
Control
La primera cosa que desearás realizar es un control de Subversion. Ya que los clones de Git mantienen un directorio de trabajo (donde editas los archivos) separado de los datos del repositorio, solo hay una rama en el directorio de trabajo a la vez.
Los controles de Subversion son diferentes: combinan los datos del repositorio en los directorios de trabajo, por lo que hay un directorio de trabajo para cada rama y etiqueta que has revisado. Para los repositorios con muchas ramas y etiquetas, revisar cada cosa puede ser una sobrecarga del ancho de banda, por lo que deberías comenzar con un control parcial.
-
En GitHub Enterprise, visita la página principal del repositorio.
-
Debajo del nombre del repositorio, da clic en Clonar o descargar.
-
Para clonar el repositorio utilizando HTTPS, debajo de "Clonar con HTTPS", da clic en . Para clonar el repositorio utilizando una llave SSH da clic en Utilizar SSH y luego en .
-
Realiza un control vacío del repositorio:
$ svn co --depth empty https://github.com/user/repo > Checked out revision 1. $ cd repo
-
Llega hasta la rama
trunk
(tronco). El puente de Subversion mapea la rama tronco con la rama HEAD (encabezado) de Git (que normalmente es la ramamaster
[principal]).$ svn up trunk > A trunk > A trunk/README.md > A trunk/gizmo.rb > Updated to revision 1.
-
Consigue un control vacío del directorio de
branches
(ramas). Aquí es donde están todas las ramas non-HEAD
(no encabezado), y donde harás las ramas de características.$ svn up --depth empty branches Updated to revision 1.
Crear ramas
También puedes crear ramas usando el puente de Subversion a GitHub.
Desde tu cliente svn, asegúrate de que la rama "principal" esté vigente actualizando la rama trunk
(tronco):
$ svn up trunk
> At revision 1.
A continuación, puedes utilizar svn copy
para crear una nueva rama:
$ svn copy trunk branches/more_awesome
> A branches/more_awesome
$ svn commit -m 'Added more_awesome topic branch'
> Adding branches/more_awesome
> Revisión confirmada 2.
Puedes confirmar que la nueva rama existe en el menú desplegable de la rama del repositorio:
También puedes confirmar la nueva rama por medio de la línea de comando:
$ git fetch
> From https://github.com/user/repo/
> * [new branch] more_awesome -> origin/more_awesome
Realizar confirmaciones de cambios en Subversion
Después de haber agregado algunas características y haber arreglado algunos errores, desearás confirmar estos cambios en GitHub. Esto funciona de la misma forma en la que estás acostumbrado en Subversion. Edita tus archivos y utiliza svn commit
para registrar tus cambios:
$ svn status
> M gizmo.rb
$ svn commit -m 'Guard against known problems'
> Sending more_awesome/gizmo.rb
> Transmitiendo los datos del archivo.
> Revisión confirmada 3.
$ svn status
> ? test
$ svn add test
> A test
> A test/gizmo_test.rb
$ svn commit -m 'Test coverage for problems'
> Adding more_awesome/test
> Adding more_awesome/test/gizmo_test.rb
> Transmitiendo los datos del archivo.
> Revisión confirmada 4.
Alternar entre ramas
Para alternar entre ramas, probablemente desearás comenzar con un control del trunk
(tronco):
$ svn co --depth empty https://github.com/user/repo/trunk
Luego, puedes alternar a otra rama:
$ svn switch https://github.com/user/repo/branches/more_awesome
Encontrar el SHA de confirmación de Git para una confirmación de Subversion
El servidor de Subversion de GitHub muestra el sha de confirmación de Git para cada confirmación de Subversion.
Para ver el SHA de confirmación, deberías solicitar la propiedad remota sin versión de git-commit
.
$ svn propget git-commit --revprop -r HEAD https://github.com/user/repo
05fcc584ed53d7b0c92e116cb7e64d198b13c4e3
Con este SHA de confirmación, puedes, por ejemplo, consultar la correspondiente confirmación Git en GitHub.