2012-09-03 14 views
14

Próbuję wykonać svn update moją kopię roboczą SVN z TortoiseSVN, ale aktualizacja nie powiedzie się, prosząc najpierw o wyczyszczenie.pristine svn-base file missing

Jednakże, svn cleanup nie powiedzie się również stwierdzenie, że \.svn\pristine\20\20long-namecbf.svn-base file cannot be found.

Próbowałem już zwolnić blokadę, ale to też nie działa.

Każdy pomysł, jak powinienem postępować?

Odpowiedz

2

Możesz użyć SmartSVN, aby przywrócić utracony pierwotny plik.
Pobierz i zainstaluj. To nie jest darmowe, ale 30-dniowy bezpłatny okres próbny powinien wystarczyć do naprawy repozytorium.
Otwórz kopię roboczą pod numerem SmartSVN. Do naprawy, wybierz Modyfikuj>Waliduj Admin Area ...
Enjoy!

+0

Proszę dodać, jak widziałem kilka odwołań do SmartSVN, ale wszystkie nie wyjaśnić, w jaki sposób. – bonitzenator

+0

Edytowałem odpowiedź jako twoją prośbę. – duccom

+0

Dziękuję Duccom, to ma więcej sensu. – bonitzenator

4

Uciekłem, zastępując katalog .svn tym samym ze świeżo wyrejestrowanej kopii. Na szczęście dla mnie lokalna kopia była na tej samej wersji co repozytorium. Nie jestem pewien, jakie byłyby konsekwencje, gdyby tak nie było.

26

Ten problem:

nie mogą znaleźć plik .svn \ dziewiczy \ 24 \ 24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn baza

skopiowane do SVN-bazy z innego pliku i przemianowany na to z 24fd530d4bd82341fb514ab912c9e10adbc4ad89. svn-base. I wykonaj operację oczyszczania. Potem spotkałem się z kolejnym plikiem. W ten sam sposób iw końcu rozwiązałem ten problem.

Z linii poleceń systemu Windows z SilkSVN zainstalowane:

cd project directory 
svn status 

To wygeneruje błąd. Zaznaczyć i skopiować tekst i nazwę pliku, a następnie wklej:

echo > .svn\pristine\<paste> 

Na przykład:

echo > 24\24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn-base 

Dzięki tej wiedzy w ręku, to byłoby rozsądnie trywialny napisać plik wsadowy, który może rozwiązać te problemy, automatycznie dla wszystkich. Komenda svn wygeneruje wartość% ERRORLEVEL%, którą można sprawdzić pod kątem błędu.

+6

To doprowadziło mnie do jeszcze prostszego rozwiązania: po prostu utwórz pusty plik o podanej nazwie i uruchom 'svn cleanup'. (Btw. To powinna być akceptowana odpowiedź.) – Csq

1

Dla mnie plik był tam, ale miał (1) dołączony do nazwy. (Kopia) ff4c7be3da460bb91144d6761cc5743536c983f4 (1) .svn Base

I usunięte "(1)" i oczyszczanie ran drobne ff4c7be3da460bb91144d6761cc5743536c983f4.svn-base

5

Rozwiązałem to przez

  1. Tworzenie pustego pliku /workingdirectory/.svn/pristine/da/da39a3ee5e6b4b0d3255bfef95601800afd80009.svn-base

  2. Run oczyszczanie svn