GitHub admite clientes de Subversion por medio del protocolo HTTPS. Utilizamos el puente de Subversion para comunicar los comandos svn a GitHub.
Nota: La compatibilidad con Subversion se retirará con GitHub versión 3.13. Para obtener más información, consulte el blog de GitHub.
Funciones de Subversion admitidas en GitHub
Restauración
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.
Las extracciones del repositorio de Subversion son diferentes: mezclan los datos del repositorio en los directorios de trabajo, por lo que hay un directorio de trabajo para cada rama y etiqueta que haya extraído. En el caso de los repositorios con muchas ramas y etiquetas, la extracción del repositorio de todo puede ser una carga de ancho de banda, por lo que debe empezar con una extracción parcial.
-
En GitHub, navegue hasta la página principal del repositorio.
-
Encima de la lista de archivos, haz clic en Código.
-
Copia la dirección URL del repositorio.
-
Para clonar el repositorio con HTTPS, en "HTTPS", haz clic en .
-
Para clonar el repositorio mediante una clave SSH, incluido un certificado emitido por la entidad de certificación SSH de la organización, haz clic en SSH y luego en .
-
Para clonar un repositorio mediante GitHub CLI, haz clic en GitHub CLI y, después, en .
-
-
Realiza un control vacío del repositorio:
$ svn co --depth empty https://github.com/USER/REPO > Checked out revision 1. $ cd REPO
-
Vaya a la rama
trunk
. 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.
-
Obtenga una extracción vacía del directorio
branches
. Aquí se encuentran todas las ramas que no sonHEAD
y donde creará ramas de característica.$ svn up --depth empty branches Updated to revision 1.
Crear ramas
También puedes crear ramas usando el puente de Subversion a GitHub.
Desde el cliente de svn, para asegurarse de que la rama predeterminada es la más reciente, actualice trunk
:
$ svn up trunk
> At revision 1.
A continuación, puede usar svn copy
para crear una rama:
$ svn copy trunk branches/more_awesome
> A branches/more_awesome
$ svn commit -m 'Added more_awesome topic branch'
> Adding branches/more_awesome
> Committed revision 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 corregido algunos errores, querrá confirmar estos cambios en GitHub. Esto funciona de la misma forma en la que estás acostumbrado en Subversion. Edite los archivos y use svn commit
para registrar los cambios:
$ svn status
> M gizmo.rb
$ svn commit -m 'Guard against known problems'
> Sending more_awesome/gizmo.rb
> Transmitting file data .
> Committed revision 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
> Transmitting file data .
> Committed revision 4.
Cambiar de una rama a otra
Para alternar entre ramas, probablemente quiera comenzar con un extracción del repositorio de trunk
:
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, debe solicitar la propiedad remota sin versión 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.