Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

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.

  1. En GitHub, visita la página principal del repositorio.

  2. Under the repository name, click Clone or download.

    Clone or download button

  3. To clone the repository using HTTPS, under "Clone with HTTPS", click . To clone the repository using an SSH key, including a certificate issued by your organization's SSH certificate authority, click Use SSH, then click .

    Clone URL button

  4. Realiza un control vacío del repositorio:

    $ svn co --depth empty https://github.com/user/repo> Revisión de control 1.
    $ cd repo
  5. 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 rama master [principal]).

    $ svn up trunk
    > A    trunk
    > A    trunk/README.md
    > A    trunk/gizmo.rb
    > Updated to revision 1.
  6. 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:

branch-snapshot

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.

Leer más

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos