Problema
¿Cómo se crea una copia superficial con git-svn desde un repositorio de Subversion, por ejemplo, cómo extrae solo las últimas tres revisiones?
El git clone
comando puede obtener las últimas n revisiones de un repositorio de Git si usa la opción --depth
, es decir, obtiene una copia superficial del repositorio. Ejemplo:
git clone --depth 3 git://some/repo myshallowcopyrepo
¿Hay una opción similar para git-svn?
Mis descubrimientos hasta ahora
Hasta ahora solo he encontrado la -rN
opción donde N
está la revisión para extraer. Ejemplo:
git svn clone -rN svn://some/repo
Según la documentación existe la posibilidad de utilizar -r$REVNUMBER:HEAD
. Intenté lo siguiente para obtener las últimas 3 revisiones que devolvieron un mensaje de error.
$ git svn clone --prefix=svn/ -s -rHEAD~3:HEAD http://some/svn/repo .
revision argument: HEAD~3:HEAD not understood by git-svn
Así que lo reemplacé HEAD~3
con el número real de la tercera pero última revisión 534. Eso funcionó, pero eso requiere que primero averigüe el número de revisión de la tercera pero última confirmación.
$ git svn clone --prefix=svn/ -s -r534:HEAD http://some/svn/repo .
Documentación
--depth
para git svn
, ya que el apoyo que ya está ahí. ¿Y ya tiene que averiguar las últimas revoluciones del servidor?
-s is for --stdlayout which presumes the svn recommended layout for tags, trunk, and branches.
(pero no funcionó para mí)