2013-07-17 8 views
5

Konwertuję moje repozytorium svn na git. Jest to bardzo duże repozytorium i nadal się nie udaje, dlatego muszę sklonować tylko jego część. Użyłem następującej komendy:Git Svn sklonuj pewną wersję i kontynuuj klonowanie innych wersji w przyszłości

git svn clone -r100000:HEAD https://svn.myserver.com/project/ . 

Ukończono pomyślnie, ale mam tylko kilka ostatnich zatwierdzeń. Czy mimo to kontynuuje się klonowanie wcześniejszych zatwierdzeń?

PS: klonowanie całego repo bez -r zawsze skutkuje niepowodzeniem żądania warstwy RA: Żądanie RCP nie powiodło się w 'svn/project /! Svn/vcc/default': ... nie można odczytać rozmiaru porcji: bezpieczne połączenie zostało obcięte ... Czasami jest to po kilku dniach ... więc postanowiłem porzucić go i sklonować tylko częściowo

EDIT: Dodawanie komunikatu o błędzie

żądanie warstwy RA nie powiodło się: żądanie raportu nie powiodło się „/ svn/project /! svn/vcc/default ': RAPORT z'/svn/project /! svn/vcc/default ': Nie można odczytać rozmiaru fragmentu: Bezpieczne połączenie zostało obcięte (https://svn.myserver.com) w/usr/lib/perl5/site_perl/Git Linia /SVN/Ra.pm 282

Odpowiedz

1

z git nie można dodać historii "przed", co już masz. każdy git commit odnosi się do WSZYSTKICH ZOBOWIĄZAŃ, KIEDYKOLWIEK jest jego następcą (poprzez włączenie skrótu do tych zatwierdzeń). możliwe jest przepisanie historii (i dodanie nowych zatwierdzeń z przodu), ale to daje ci zupełnie nowe zatwierdzenia (zmieniane hashy) i nie jest tym, co chcesz zrobić w aktywnie używanym repozytorium.

powinieneś pobrać tyle historii, ile się da, i zażądać "początkowego importu" lub spróbować rozwiązać problem z importem. kiedy mówisz o dniach, brzmi to tak, jakbyś mógł czerpać korzyści z zbliżania się do repozytorium svn, tzn. uruchamiać polecenia na samym serwerze svn, aby zaoszczędzić na obciążeniu sieci/opóźnieniu sieci.

również może pomóc podać więcej informacji na temat rzeczywistych błędów, które napotkasz.

+1

Czy to oznacza, że ​​jeśli sklonuję od R.100000, najwcześniejsza historia, jaką kiedykolwiek miałem w moim repozytorium Git to R.100000? nie ma sposobu, aby pobrać wcześniejszą historię (commit) później po początkowym klonie? – Zennichimaro

+0

co najmniej będzie trudno zintegrować oddział do 100k z oddziałem start-at-100k.jeśli tworzysz je niezależnie, musisz przepisać gałąź start-at-100k, gdy sfinalizujesz ją w gałęzi do 100k, co spowoduje wszystkie zwykłe problemy z odświeżoną historią lub możesz użyć przeszczepów (nb i nigdy nie użyłem im): https://git.wiki.kernel.org/index.php/GraftPoint --- zdecydowanie najlepszym rozwiązaniem jest zaimportowanie całości w jednym kawałku, jeśli to możliwe. – mnagel

5

Jeśli chcesz całą historię, dlaczego nie zacząć od repozytorium svn repo o 1? To prawda, że ​​zajmie to trochę czasu, ale możesz to zrobić na części. Na przykład:

git svn clone -r1:10000 https://svn.myserver.com/project/ . 

Raz, że kończy CD do projektu i uruchom:

git svn fetch svn -r10000:20000 

można nawet pokrywać:

git svn fetch svn -r9997:20000 

i będzie to pominąć już nim kawałki dostał. Możesz po prostu nie chcieć tworzyć luk.

Zdaję sobie sprawę, że próbowałeś wyciągnąć to wszystko wcześniej, bez jakiejkolwiek specyfikacji i dostałeś błędy, ale być może zrobienie tego w sekcjach minie to. Jeśli pojawi się błąd, spróbuj ponownie uruchomić to samo polecenie. Podczas korzystania z git svn clone w przeszłości miałem wiele przypadków utraty połączenia lub błędów losowych, ale dołączenie do projektu i git svn fetch lub rebase -ing (czasami wielokrotnie) wydaje się kontynuować przechwytywanie tam, gdzie zostało przerwane.

+0

dzięki! Nigdy nie próbowałem, że dadzą mu szansę – Zennichimaro

+0

niestety, znowu nie powiodło się z tym samym komunikatem o błędzie: Index niedopasowanie: 907786790b14a445c2b5eef420311bea543b597c = 09b95548bc4f106b1bb5 7be669737878067e1f4c rereading ac49f8e7dbfaeaa3cf500b946c6ebe50abb735ee M App/asset/GUI/warstwę ReadMe.txt RA żądanie nie powiodło się: Żądanie żądania nie powiodło się w "/ svn/sg /! svn/vcc/default": R EPORT z "/ svn/sg /! svn/vcc/default": Nie można odczytać rozmiaru fragmentu: Secure connecti na obciętym (https://192.168.1.107) na /usr/lib/perl5/site_perl/Git/SVN/Ra.pm linia 282 – Zennichimaro