2010-07-19 10 views
14

Niedawno miałem uszkodzony obiekt w moim repozytorium, wskazując na moją HEAD (obiekt był pusty). Stało się to po przerwaniu polecenia git-svn. Następnie przywróciłem moje repozytorium, ręcznie zmieniając wartość refs na tym obiekcie.git-svn Fetch/rebase nie działa po próbie naprawienia uszkodzonego pliku

Teraz chcę zsynchronizować repozytorium git z SVN, ale git svn pobrać Powroty:

fatal: Invalid revision range 5a5dc92cd3083960fb4828ae387a32cda0554fa8..refs/remotes/a-branch 
rev-list --pretty=raw --no-color --reverse 5a5dc92cd3083960fb4828ae387a32cda0554fa8..refs/remotes/a-branch --: command returned error: 128 

5a5dc92cd3083960fb4828ae387a32cda0554fa8 odnosi się do uszkodzonego obiektu, chciałbym powiedzieć git-svn nie rozważyć tego obiektu, ale kolejny, ale nie wiem, jak to zhackować.

Jeśli ktoś wie, gdzie/jak git-svn wewnętrznie przechowuje tę wartość, byłoby wspaniale.

Dziękuję

Odpowiedz

17

jeśli svn metadane zapisywane na Twoim Wiadomości commit (tych http://svn.…./svn/[email protected] (<id>)), można usunąć .rev_map.<id> pliki z .git/svn/… katalogów.

git-svn ponownie je utworzy przed uruchomieniem następnego polecenia.

Edit: Uruchamiając git gc jeśli widzisz wyjście wzdłuż linii:

$ git gc 
warning: reflog of 'HEAD' references pruned commits 
warning: reflog of 'refs/heads/master' references pruned commits 
warning: reflog of 'refs/remotes/trunk' references pruned commits 

to wiesz, że trzeba wykonać powyższą sprawę. W tym przypadku:

rm .git/svn/refs/remotes/trunk/.rev_map.* 
+0

Mam edytowany odpowiedź do uczynienia go bardziej zrozumiałym, że w rev_map pochodzi z poprzedniego odniesienia, ponieważ pracowałem się, co było potrzebne z innego odniesienia w internecie. –

Powiązane problemy