2010-11-22 11 views
3

J'essaye de cloner le grand dépôt svn dans mon dépôt git. Le problème est que rep. est trop grand et svn clone fonctionne trop lentement. Y a-t-il moyen de cloner seulement les N dernières révisions?En utilisant git svn puis-je importer dans le dépôt git les 100 dernières révisions?

Quelque chose comme ça:

git svn clone http://svn/svn/test . (from 200 to 400 revision) 

ou peut-être quelque chose comme ça:

git svn fetch (20,30,40-50 revisions) 
+0

double possible de [Comment clone git-svn les révisions de dernière n à partir d'un dépôt Subversion?] (Http: //stackoverflow.com/questions/747075/how-to-git-svn-clone-the-last-n-revisions-from-a-subversion-repository) –

Répondre

7

Si elle était un git, vous pouvez

git svn clone (url) --depth (N) 

Mais il est non trivial dans SVN de trouver le numéro de révision des « révisions N back », contrairement à Git.

Donc, vous devez spécifier vous-même le numéro de révision du SVN.

Alex a fourni la bonne syntaxe.

git svn clone -s -r534:HEAD http://some/svn/repo 

Mais il est plus facile sur la tête de se rappeler et procédez comme suit:

# checkout a specific revision 
git svn clone -r N svn://some/repo/branch/some-branch 
# enter it and get all commits since revision 'N' 
cd some-branch 
git svn rebase 
+0

Puis-je ajouter des rivutions plus tôt à mon représentant? (si le référentiel existe déjà) – Astronavigator

+0

Pourquoi le préfixe est-il nécessaire? – Astronavigator

+0

Dans ce cas, puis-je avoir toutes les branches svn dans mon dépôt git? – Astronavigator

2

Indiquez le numéro de révision SVN que vous voulez démarrer votre clone à l'aide du commutateur -r. -r$REV:HEAD.

Quelque chose comme ceci:

git svn clone --prefix=svn/ -s -r$REV:HEAD path/to/repo 

$REV est le numéro de révision que vous souhaitez démarrer le clone à.