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.com, visita la página principal del repositorio.

  2. Sobre la lista de archivos, da clic en Código. Botón de "Código"

  3. Para clonar el repositorio utilizando HTTPS, debajo de "Clonar con HTTPS", da clic en . Para clonar el repositorio utilizando una llave SSH, incluyendo un certificado emitido por la autoridad de certificados SSH de tu organización, haz clic en Utilizar SSH y luego en . Para clonar un repositorio utilizando el CLI de GitHub, haz clic en Utilizar el CLI de GitHub y luego en . El icono de portapapeles para copiar la URL para clonar un repositorio

    El icono del portapapeles para copiar la URL para clonar un repositorio con el CLI de GitHub

  4. Realiza un control vacío del repositorio:

    $ svn co --depth empty https://github.com/user/repo
    > Checked out revision 1.
    $ cd repo
  5. Llega hasta la rama trunk (tronco). El puente de Subversion mapea a trunk en la rama HEAD de Git.

    $ 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 de svn, asegúrate de que la rama predeterminada es la más reciente actualizando trunk:

$ 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/repo
05fcc584ed53d7b0c92e116cb7e64d198b13c4e3

Con este SHA de confirmación, puedes, por ejemplo, consultar la correspondiente confirmación Git en GitHub.

Leer más

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.