Ho iniziato a clonare un repository SVN usando l'operazione clone di git-svn. Dopo circa 6 ore di importazione (è un grande repo), il mio computer è andato a dormire su di me. C'è un modo per riprendere l'operazione senza ripetere tutto il lavoro iniziale?Ripresa clone git-svn
risposta
Il comando git svn fetch
per riprendere un git svn clone
è confermato da diverse fonti:
- Git svn and Gnome blog
(Per inciso, se durante il clone iniziale passo la tua connessione muore o è necessario smetti allora di riprendere il clone devi solo eseguire il comando sopra per riprendere il download della cronologia).
Sembra che ci sia una perdita di memoria in
git-svn
. La dimensione del processogit-svn
è cresciuta lentamente e dopo circa due settimane era a 1.2 GB di dimensione del residente, a quel punto l'OS si è rifiutato di lasciarlo andare.
La cosa è, questa era una benedizione sotto mentite spoglie.
Sono stato in grado di riprendere il clone interrotto con un semplice "git svn fetch
", ed è stato eseguito molto più velocemente con l'heap ora radicalmente più piccolo.
Questo, ha funzionato così bene, in effetti, che ho preso l'abitudine di interrompere e riavviare il processo ogni sera e ogni mattina. Qualche giorno dopo è stato fatto.
Si inizia con le vostre avventure
git-svn
clonando un repository Subversion esistente:
git svn clone url://path/to/repo -s
Il
-s
bandiera presuppone che y il nostro repository utilizza la convenzione "trunk, branches, tags". In caso contrario, è necessario specificare manualmente quali directory rappresentano rami e tag, se si desidera che Git ne venga a conoscenza.Questo richiederà molto tempo, poiché recupera ogni singola revisione da SVN e esegue il commit localmente. Se per qualsiasi motivo si interrompe, è possibile riprendere con
git svn fetch
.
Ho trovato a blog post quello che ha fornito (spero) una risposta corretta.
Apparentemente, l'esecuzione di git svn fetch
completa effettivamente l'operazione di clonazione. Ecco sperando!
dovrete usare 'git svn rebase' dopo il recupero per completare l'operazione e avere il ramo master che riflette il tronco –
Potrebbe fornire un collegamento al post del blog per riferimento futuro? – jmanning2k
Come hanno detto VonC, CaptainAwesomePants e Archi git svn fetch
. Stavo facendo un git svn clone url... --authors-file=path/to/file
e il clone non è riuscito perché uno degli autori non era nel file degli autori.Ho aggiunto l'autore al file e ho eseguito git svn fetch
e ha continuato da dove era stato interrotto e guardando il log git più tardi, sembra che abbia usato l'autore appena aggiunto per sostituire il nome dell'autore del commit in modo che tutto fosse dolce.
qui! grazie per il tuo post! –
Da almeno git 2.1.0 si può riprendere semplicemente riemissione git svn clone
Tuttavia questo sarà duplicare alcune voci nel vostro .git/config rimuovere quelli e tutto andrà bene
'Da almeno git 2.1.0 ...' Qualche idea se questa funzione esistesse su git 1.9.1? – CivFan
Scusa se non ho più repository svn per provare questo. –
'git svn fetch' ha causato una mancata corrispondenza del checksum per me - ed era impossibile ripristinarlo perché apparentemente non c'era HEAD:/- ma funziona bene, dovevo semplicemente rimuovere' svn-remote.fetch' da '.git/config ' – OLL
- 1. Ripresa sottosalbero off master
- 2. Cocos2D Director Pausa/Ripresa numero
- 3. App Ripresa dell'evento non attivato quando l'app viene ripresa in WP 8.1 store app
- 4. clone fila
- 5. farmville clone
- 6. Windows Ripresa universale del design reattivo
- 7. Ripresa di streaming radio interrotto utilizzando MPMoviePlayerController
- 8. Ripresa della verifica SVN interrotta ... di nuovo
- 9. Come funziona Scrapy in pausa/ripresa?
- 10. Ripresa riproduzione di VideoView da onResume
- 11. Gioco JS - ripresa in direzioni casuali
- 12. Rileva quando l'app viene aperta/ripresa
- 13. Django Celery Workflow Chain Pausa/Ripresa
- 14. clone() ha accesso protetto - reso pubblico Oggetto clone()
- 15. Clone-equivalent of fork?
- 16. Errore clone git Hudson
- 17. Git Clone Failure
- 18. Repository clone JGit
- 19. java: clone metodo violazione
- 20. Clone repository in GitHub
- 21. Errore clone Github
- 22. etree Clone Node
- 23. metodo clone() in Java
- 24. jQuery tabella riga clone
- 25. Java - abbattuti nel clone
- 26. Rubino DUP/clone ricorsivamente
- 27. Clone Winform control
- 28. clone node on drag
- 29. come aggiornare git clone
- 30. Git clone --bare/fetch
Penso che alcune delle opzioni della linea di comando fornite a 'git svn clone' devono anche essere fornite (come applicabile) a' git svn fetch'. Ad esempio, ho impostato '-r HEAD' per' git svn clone' per ottenere solo la revisione HEAD SVN. Per riprendere, ho eseguito 'git svn fetch', che ha iniziato a importare tutte le revisioni. – amolbk
Tutto è iniziato dalla prima revisione .... Ho 10.000 commit! Qualche idea su come * riprendere * da dove era stato interrotto? –
@ NathanJ.Brauer non sulla cima della mia testa. Potresti fare una nuova domanda (con il sistema operativo, la versione git e la versione svn usate e un link a questa risposta per il contesto) – VonC