Problema
Voglio clonare un repository SVN con git-svn.
Il problema è che il repository subversion ha cambiato layout in r1235 .
Specifiche
Dalla revisione 1 alla 1234, foo ha utilizzato il layout della cartella svn standard con:
- / trunk / src
- / tag /
version/ src
Alla revisione 1235, l'autore ha aggiunto bar al pronti contro termine. Per fare ciò hanno ristrutturato il master repository rendendo il layout della cartella simile a questo:
- / trunk / foo / src
- / trunk / bar / src
- / tag /
version/ pippo / src - / tag /
version/ bar / src
Obiettivo
Voglio un nuovo repository git con la cronologia di foo come se non fosse mai riorganizzato per includere bar .
Documentazione pertinente
Lavorare con layout non standard è discusso nella documentazione di git-svn.
Se l'intera cronologia non è necessaria (o se voglio solo bar ), posso ottenere quello che voglio da r1235 su:
-
git svn init --stdlayout http://path.to/repo - modifica
repo/.git/configaggiungendo/fooai percorsi pertinenti (o/bar)
'
[svn-remote "svn"]
url = http://path.to/repo
fetch = trunk/foo:refs/remotes/trunk
branches = branches/*/foo:refs/remotes/*
tags = tags/*/foo:refs/remotes/tags/*
'
-
git svn fetch -r 1235:HEAD
I miei tentativi
-
git svn clone -r 1:1234 --stdlayout http://path.to/repo - modifica
repo/.git/configcome sopra -
git svn fetch -r 1235:HEAD
Risultato
L'ultimo comando sembra avere successo perché r1235 - HEAD viene scaricato. Tuttavia, git log mostra solo commit fino a 1234 . Anche la directory di lavoro sembra essere la vecchia revisione.