2009-08-31 16 views
17

próbuję importować duże repozytorium subversion do git przy użyciu git-svn (tak, że mogę pracować w git ale ciągle dcommit do dywersji od czasu do czasu). Po zaimportowaniu ponad 4000 poprawek Jestem teraz otrzymuję następujący błąd, gdy biegnę git svn fetch lub git svn rebase, których nie uda się pozbyć:krytyczny: git zapisu drzewa: error budowlanych drzewa

$ git svn fetch 
error: invalid object 100644 1f2....742 for 'src/path/.../file.cs' 
fatal: git-write-tree: error building trees 
write-tree: command returned error: 128 

Co próbowałem dotąd:

  • git fsck --full niczego nie zgłosić, ani nie git fsck --unreachable lub git fsck --no-reflog
  • git gc --aggressive nie pomaga
  • przeniesienie pliku pojedynczego opakowania z dala i ponowne zaimportowanie go za pomocą git unpack-objects nie pomaga
  • git svn reset -rXY z XY nieco niższym niż najnowszy importowany revsion nie wydaje się pomagać, ani nie usuwa ręcznie ostatnich wpisów z reflog aż do XY.
  • restart. Brzmi głupio, ale ja obserwować dziwne problemy podczas importowania pierwszy ~ 4000 rewizji, jakby coś przecieka dużo zasobów jądra (najprawdopodobniej w oknach podsystemu), może być związane z Msys/MinGW (lub skaner antywirusowy Avira, który został wyłączony do testowania).

Również nie dowiedziałem się, co naprawdę oznacza błąd 128. Jakieś pomysły? Z góry dziękuję!

może być związane z this question która wynosi około 128 błędów, a także, ale o różnych komunikatów o błędach, a bez rozwiązania.

msysgit wersja 1.6.4.msysgit.0 z bash na XP SP3

+1

Zapytaj o listę dyskusyjną git ([email protected]), nie musisz subskrybować posta (istnieje kilka interfejsów internetowych, aby przeczytać, w tym Gmane i MARC) –

Odpowiedz

34

git svn gc

(ewentualnie git gc i git prune wcześniej)

+0

Dzięki, to zadziałało! Nie wiem, czy gc/prune były konieczne, robię je oczywiście. – Tobu

+0

Wypróbowałem wszystkie bez rozwiązania ... –

+0

Miałem ten problem.Uruchamianie właśnie 'git svn gc' bez' git gc' i 'git prune' naprawiło to dla mnie. – thakis

4

Krótka odpowiedź: Spróbuj rozwiązać każdy scalić konfliktów, ich popełnienia, a oni pobierać/pull ponownie .

Dłuższe wyjaśnienie: Zgaduję, że rozwiązałeś ten problem, ponieważ został opublikowany tak dawno temu. Piszę o tym, ponieważ ranking Google w rankingu artykułów StackOverflow jest wystarczająco wysoki, aby inne osoby z tym problemem bardzo chętnie odwiedzały tę stronę, gdyby miały ten błąd.

natknąłem się na podobny błąd, gdy próbuje zrobić „git zapas”, co okazało się być problemem było to, że konflikt scalania doszło po pull. Nie rozwiązałem problemu &, który spowodował konflikt, a to pozostawiło repozytorium w stanie, które uniemożliwiło mi wyciągnięcie/scalenie/etc ...

Jeśli nie masz żadnych plików blokujących, spróbuj ponownie.

Powodzenia!