Soporte para clientes de Subversion
Los repositorios de GitHub pueden accederse desde los clientes de Git y de Subversion (SVN). En este artículo se aborda el uso de un cliente de Subversion en GitHub y algunos problemas comunes que puedes llegar a encontrar.
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.
-
Under the repository name, click Clone or download.
-
To clone the repository using HTTPS, under "Clone with HTTPS", click . To clone the repository using an SSH key click Use SSH, then click .
-
Realiza un control vacío del repositorio:
$ svn co --depth empty https://github.com/user/repo> Revisión de control 1. $ cd repo
-
Llega a la rama
trunk
(tronco). El puente de Subversion mapea la rama tronco a 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
ramas
. Aquí es donde están todas las ramas de non-HEAD
(no encabezado), y donde harás las ramas de características.$ svn up --depth empty branches Actualizado a la revisión 1.
Crear ramas
También puede crear ramas usando el puente Subversion a GitHub.
Desde su cliente svn, asegúrate de que la rama "principal" esté vigente actualizando la rama trunk
(tronco):
$ svn up trunk
> En revisión 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/repo05fcc584ed53d7b0c92e116cb7e64d198b13c4e3
Con este SHA de confirmación, puedes, por ejemplo, consultar la correspondiente confirmación Git en GitHub.