2009-11-24 15 views
11

Sto usando git-svn per il nostro repository svn. Tuttavia, il repo è enorme, quindi prima ho controllato il progetto in questo modo:Git Svn Fetch Altre revisioni

git svn clone svn://svn.server.com/project -s -r 12000:HEAD 

Così, ora ho solo revisioni 12000 alla revisione corrente. Vorrei cassa alcuni più revisioni, ma quanto segue non fa nulla:

git svn fetch -r 11000:HEAD 

Esiste un modo per andare a prendere le revisioni più anziani?

+0

Potrebbe essere che la revisione 11000 non sia un genitore dell'attuale HEAD? –

risposta

9

Non penso che questo sia realmente supportato, così facendo rebase l'intero repository che generalmente sarebbe considerato una cosa negativa. (Anche se la git pura è più che felice di farti sparare ai piedi facendo questo) Non vedo un modo per farlo, anche dopo aver manipolato i dati in .git/svn. Puoi verificare revisioni più vecchie di rami e tag che non hai recuperato, ma una volta recuperato un ramo, non puoi tornare indietro e acquisire ancora più cronologia.

Ho aspettato 6 ore per un repo di revisione 50k da clonare, quindi conosco il tuo dolore. Se vuoi davvero tanta storia, ti suggerisco di lasciarlo correre tutta la notte e di afferrare l'intera cosa.

+5

+1 per il dolore –

+0

Il tronco del mio progetto ha oltre 600.000 revisioni e non sono riuscito a clonarlo anche dopo 15 ore. Io non so cosa fare. – goyalshub1509

1

Sembra che this post abbia una risposta: in pratica, non è necessario iniziare con clone, ma init e fetch. Non l'ho provato (ancora) ...

+0

Hmm ... Provato, non ha funzionato ... –

2

Io non sono esperto abbastanza in git e git-svn per rimpolpare questo fuori completamente, ma si essere in grado di git svn clone svn in un nuovo repository, aggiungere tale repository come remoto e recuperarlo dal repository di avvio, quindi aggiungere un punto di innesto tra il primo commit nel repository precedente (r12000) e il genitore di di r12000 nel nuovo repository. Questo fonderà insieme i due pezzi di storia. Poi di nuovo, potrebbe essere necessario un po 'di patching per mantenere git-svn funzionante correttamente.

Problemi correlati