Jak naprawić uszkodzone repozytorium (które ma scentralizowany katalog .svn)?

19

Niedawno zaktualizowałem moją instalację TortoiseSVN do wersji 1.7.1. Zmusiło mnie to również do uaktualnienia kopii roboczej. Aktualizacja usunęła wszystkie (oprócz jednego) katalogów .svn ze wszystkich podkatalogów, pozostawiając tylko jeden w katalogu głównym.

Teraz nieoczekiwanie (oczywiście; podejrzewam, że moje oprogramowanie antywirusowe) występuje błąd, gdy na przykład próbuję wyczyścić kopię roboczą. Nie jestem też w stanie nic popełnić.

Komunikat o błędzie podczas czyszczenia to:

Czyszczenie nie przetworzyło następujących ścieżek: C: \ svn

Nie można otworzyć pliku „C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base”: System nie może znaleźć określonego pliku.

Wykryłem błąd związany z obecnością jednego katalogu w kopii roboczej. Jeśli zmienię nazwę, wszystko będzie działać. Gdy jest obecny, pojawia się błąd. Ja również go usunąłem i sprawdziłem ponownie. Bez zmian, błąd nadal występuje.

W poprzednich wersjach mogłem łatwo naprawić szkody w .svn: po prostu usuń uszkodzony folder i sprawdź ponownie. Nie mogę tego więcej robić, ponieważ teraz katalog .svn jest scentralizowany.

Co mogę zrobić, aby naprawić kopię roboczą?

Heinrich Ulbricht
źródło

Odpowiedzi:

21

Nie można otworzyć pliku „C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base

Właśnie miałem podobny błąd i faktycznie musiałem zrobić ten plik za pomocą notatnika, a następnie czyszczenie zadziałało.

Dave Storm
źródło
1
Ale czy to bezpieczne? Czy „czyszczenie svn” sprawi, że ten plik będzie ponownie pusty? (Ponieważ z pewnością było wcześniej, nie?)
hans_meine
Mogę sprawdzić, że ta metoda działa, nie jestem pewien, co jest wynikiem / strata z tytułu utworzenia takiego pustego pliku - ale nie jej tworzenia, nie pozwala mi na „kontynuuj commit”
nrathaus
4

Zamiast tworzyć pusty plik (czego nie miałem odwagi zrobić), dokonałem tymczasowego świeżego pobrania tylko katalogu, którego dotyczy problem (określając tę ​​samą wersję) i skopiowałem brakujący plik z nowego podfolderu .svn do uszkodzonego katalogu roboczego .

W celu dalszego zilustrowania tego, w moim przypadku, narzekał svn plik .svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-base, który jest dokładnie ścieżką, którą można znaleźć w świeżym, częściowym kasie.

hans_meine
źródło
3

Ten sam problem mieliśmy po aktualizacji ze starszej wersji do Tortoise SVN 1.7.7.

Ponieważ nie znalazłem innego rozwiązania, usunąłem lokalną kopię roboczą i sprawdziłem ją ponownie. Teraz działa dobrze.

Tomas Chlouba
źródło
2

Mam problem, gdy przerywałem scalanie. Nie mogłem wykonać żadnej akcji SVN. Podczas czyszczenia SVN spowodował błąd, że nie może znaleźć określonego pliku, co prowadzi do niepowodzenia czyszczenia.

Utworzyłem fikcyjny plik z tą dokładną nazwą w określonym folderze i wyczyściłem SVN.

Wtedy mogłem kontynuować.

użytkownik304100
źródło
0

Miałem podobny problem, gdy mówiono, że C:\working_copy\dir\file.xmlnie można znaleźć pliku . Usunąłem dirkatalog. W moim przypadku po prostu dodanie nowego dirfolderu i file.xmlpliku (z pustym tekstem) pozwoliło kontynuować czyszczenie, a następnie mogłem poprawnie ponownie zaktualizować kopię roboczą.

jevon
źródło
0

Mój problem polegał na tym, że musiałbym ponownie skonfigurować cały projekt w moim IDE, jeśli wyrejestruję się z repozytorium od zera, nie dbałem o zapisywanie zmian.

Usunąłem katalog .svn i repozytorium kasy w tym samym katalogu.

Problem został rozwiązany: mogłem wykonać wszystkie operacje svn, a projekt był nadal skonfigurowany w IDE

Shapoval Sergio
źródło