Esta versión de GitHub Enterprise se discontinuó el 2021-06-09. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

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

  2. Debajo del nombre del repositorio, da clic en Clonar o descargar. Botón Clone or download (Clonar o descargar)

  3. To clone the repository using HTTPS, under "Clone with HTTPS", click . Para clonar el repositorio utilizando una llave SSH , incluyendo un certificado que emita la autoridad de certificados SSH de tu organización, da clic en Utilizar SSH y luego en . Botón Clone URL (Clonar URL)

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

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

Leer más