Problème
Comment créer une copie superficielle avec git-svn à partir d'un référentiel Subversion, par exemple, comment extraire uniquement les trois dernières révisions?
La git clone
commande peut obtenir les n dernières révisions d'un référentiel Git si vous utilisez l'option --depth
, c'est-à-dire que vous obtenez une copie superficielle du référentiel. Exemple:
git clone --depth 3 git://some/repo myshallowcopyrepo
Existe-t-il une option similaire pour git-svn?
Mes découvertes à ce jour
Jusqu'à présent, je n'ai trouvé que l' -rN
option où se N
trouve la révision à tirer. Exemple:
git svn clone -rN svn://some/repo
Selon la documentation, il est possible d'utiliser -r$REVNUMBER:HEAD
. J'ai essayé ce qui suit pour obtenir les 3 dernières révisions qui ont renvoyé un message d'erreur.
$ git svn clone --prefix=svn/ -s -rHEAD~3:HEAD http://some/svn/repo .
revision argument: HEAD~3:HEAD not understood by git-svn
J'ai donc remplacé HEAD~3
par le numéro réel de la troisième mais dernière révision 534. Cela a fonctionné, mais cela nécessite que je détermine d'abord le numéro de révision de la troisième mais dernière validation.
$ git svn clone --prefix=svn/ -s -r534:HEAD http://some/svn/repo .
Documentation
--depth
pour git svn
, puisque le support est déjà là. Et il doit déjà trouver la dernière version du serveur?
-s is for --stdlayout which presumes the svn recommended layout for tags, trunk, and branches.
(mais n'a pas fonctionné pour moi)