git svn fetch
Komenda wznowić git svn clone
jest potwierdzone przez kilku źródeł:
(Nawiasem mówiąc, jeśli podczas początkowego etapu klonowania połączenie znika lub musisz je zatrzymać, aby wznowić klon, wystarczy uruchomić powyższe polecenie, aby wznowić pobieranie historii).
Wydaje się, że w programie jest wyciek pamięci git-svn
. Rozmiar git-svn
procesu rósł powoli i po około dwóch tygodniach osiągnął rozmiar rezydenta 1,2 GB, w którym to momencie system operacyjny odmówił rozwidlenia.
Chodzi o to, że to było szczęście w nieszczęściu.
Udało mi się wznowić przerwany klon prostym " git svn fetch
" i działał znacznie szybciej z teraz radykalnie mniejszą stertą.
To działało tak dobrze, że nabrałem zwyczaju przerywania i wznawiania procesu każdego wieczoru i każdego ranka. Kilka dni później było to zrobione.
Zaczynasz swoje przygody z git-svn
klonowaniem istniejącego repozytorium Subversion:
git svn clone url://path/to/repo -s
-s
Flag zakłada, że repozytorium wykorzystuje „pień, gałęzie, znaczniki” Konwencja. Jeśli nie, musisz ręcznie określić, które katalogi reprezentują gałęzie i tagi, jeśli chcesz, aby Git o nich wiedział.
Zajmie to dużo czasu, ponieważ pobierze każdą wersję z SVN i zatwierdzi lokalnie. Jeśli z jakiegoś powodu przestanie działać, możesz wznowić za pomocą git svn fetch
.
git svn clone
również podać (jeśli dotyczy)git svn fetch
. Na przykład, miałem ustawione-r HEAD
nagit svn clone
uzyskać tylko rewizji HEAD SVN. Aby wznowić, uruchomiłemgit svn fetch
, który rozpoczął importowanie wszystkich wersji.git svn clone
przerwałem połączenie sieciowe , przerywając proces. Uruchomionygit svn clone
ponownie pojawiła się na wznowienie klona-in-progress. Czy ktoś jeszcze to zrobił?Znalazłem post na blogu, który zawiera (mam nadzieję) poprawną odpowiedź.
Wygląda na to, że uruchomienie
git svn fetch
skutecznie kończy operację klonowania. Mamy nadzieję!źródło
git svn rebase
po pobraniu, aby zakończyć operację i mieć gałąź główną odzwierciedlającą pieńJak powiedzieli VonC, CaptainAwesomePants i Archi, wszystko
git svn fetch
to załatwia sprawę . Robiłemgit svn clone url... --authors-file=path/to/file
i klon się nie powiódł, ponieważ jednego z autorów nie było w pliku autorów. Dodałem autora do pliku i uruchomiłemgit svn fetch
i kontynuowałem od miejsca, w którym zostało przerwane, i patrząc na dziennik gita później, wydaje się, że użył nowo dodanego autora, aby zastąpić nazwisko autora zatwierdzenia, więc wszystko było słodkie.źródło
Od co najmniej gita 2.1.0 możesz wznowić, po prostu ponownie wydając
git svn clone
Jednak spowoduje to zduplikowanie niektórych wpisów w twoim .git / config, usunie je i wszystko będzie dobrze
źródło
From at least git 2.1.0...
Masz jakiś pomysł, czy ta funkcja istniała w git 1.9.1?git svn fetch
spowodowało niedopasowanie sumy kontrolnej - i nie można było go zresetować, ponieważ najwyraźniej nie było HEAD: / - ale to działa dobrze, po prostu musiałem usunąćsvn-remote.fetch
z.git/config