Jak naprawić błąd „brak obszaru administracyjnego kopii roboczej” w SVN?


184

Usunąłem ręcznie katalog, który właśnie dodałem, w trybie offline, do mojego repozytorium. Nie mogę przywrócić katalogu.

Każda próba wykonania aktualizacji lub zatwierdzenia zakończy się niepowodzeniem z:

"blabla/.svn" containing working copy admin area is missing.

Rozumiem dlaczego, ale czy i tak można to naprawić.

Nie chcę sprawdzać całego repozytorium i ręcznie dodawać do niego moje zmiany, zajęłoby to wiele godzin.

Odpowiedzi:


148

Zgodnie z tym: http://www.devcha.com/2008/03/svn-directory-svn-containing-working.html

Sprawdź folder „blabla” w innej lokalizacji, a następnie skopiuj jego folder .svn z powrotem do oryginalnej „blabla”.


62
Tak dużo mam SVN. Zaśmiecanie .svnpodkatalogów w tym miejscu musiało być najgorszym pomysłem w historii kontroli wersji.
Johannes Fahrenkrug

9
Ludzie, sprawdźcie poniższe sugestie Roba, to o wiele łatwiejsze niż obecne rozwiązanie.
Mohammad Arif,

Mohammed, dzięki za podniesienie głowy. To działało dla mnie. Próbowałem zmusić SVN do zignorowania katalogu dziennika, a usunięcie .svn doprowadziło mnie do tego problemu. Rozwiązanie Roba to rozwiązało.
Asmor

Johannes, nie jestem też zwolennikiem SVN, ale zaletą katalogów .svn jest to, że możesz sprawdzić podkatalogi repozytorium i zachować kontrolę wersji.
Joseph Persie

@MohammadArif, Teraz są dwa „Okrady”
Charles Clayton

123

fwiw, miałem podobną sytuację i użyłem svn --force delete __dir__ . To rozwiązało problem dla mnie. Następnie kontynuowałem pracę z kopią roboczą jak zwykle.


2
To również działało dla mnie. Aktualizacje i czyszczenie nie powiodły się, ponieważ katalog nigdy nie był w repozytorium, ale kopia robocza była pewna, że ​​jest pod kontrolą wersji. Zastanawiam się, czy dodałem katalog, ale potem go usunąłem, zanim go popełniłem?
Magnus

1
To jest bardzo dobre. Dodałem katalog, usunąłem .svn, ale nigdy się nie zobowiązałem. W sumie to załatwiło sprawę
Eric

8
Dziękuję Ci; ta odpowiedź pozwoliła mi zaoszczędzić dużo czasu. svn cleanuppotem svn --force delete <directory-that-doesn't-exist-but-should>pracował dla mnie.
mpontillo,

Pracowałem przy drugiej próbie, najpierw próbowałem bez --force, która w jakiś sposób pozostawiła plik blokady w .svn rodzica, który musiałem ręcznie usunąć. Drugi raz z --force naprawił problem.
Jörn Horstmann

3
Hm, to polecenie po prostu daje mi ten sam błąd „kopii roboczej”.
Oscar

72

To, co zrobiłem, aby to naprawić, to usunięcie lokalnej kopii kwestionowanego folderu, a następnie zrobienie jednego svn updatez elementów nadrzędnych bezpośrednio potem.

Naprawiono to od razu.


3
Nie mogę uwierzyć ... Próbowałem wszystkiego ... i to było takie proste !!! Doskonale działało, wielkie dzięki !!!!!
lucaferrario

To najprostsza odpowiedź.
joaerl

35

Czy możesz spróbować sprawdzić nową kopię katalogu nadrzędnego?

Edycja: Aby być bardziej szczegółowym, chciałem zasugerować przejście o jeden poziom wyżej i usunięcie zawierającego go katalogu. Następnie zrób

svn update --set-depth infinity

zastąpić katalog.


Próbowałem tego, ale z jakiegoś dziwnego powodu kończę na pustym katalogu. Nie rozumiem ...
e-satis,

Powinno również działać jawne <code> svn update blabla </code> od rodzica.
jmanning2k

@ jmanning2k, tak też myślałem, ale OP powiedział, że spróbował i nie zadziałało.
Rob Wells

Aby to wyjaśnić, zasugerowałem --set-depth infinityz tego powodu: stackoverflow.com/questions/866835/…
Wim Coenen,

1
To wymaga o wiele więcej pozytywnych opinii ... szybkie i względnie (jak na standardy svn) czyste rozwiązanie.
Dino,

6

Dodałem katalog do svn, a następnie przypadkowo usunąłem w nim folder .svn.

użyłem

svn delete --keep-local folderName

naprawić mój problem.


Działa to dla mnie, gdy moje IDE dodało katalog, a następnie przeniosłem katalog o tej samej nazwie na miejsce przed jego zatwierdzeniem.
uspokój się

próbowałem tego, ale nadal nie mogłem popełnić. Użyłem, svn checkout --force [url]który odtworzył folder .svn
Lex

4

Właśnie zrobiłem „svn revert / blabla” i zadziałało, folder wrócił i mogę svn go usunąć


Dzięki. Miałem ten problem i próbowałem twojej sugestii i zadziałało.
Boric

3

Podczas próby dodania katalogu do repozytorium wystąpił błąd „Katalog bla / .svn” zawierający obszar administracyjny kopii roboczej ”, ale nie miałem wystarczających uprawnień systemu plików, aby to zrobić. Katalog nie był już w repozytorium, ale twierdził, że jest pod kontrolą wersji po nieudanym dodaniu.

Wyszukanie kopii katalogu nadrzędnego w innej lokalizacji i zastąpienie folderu .svn w katalogu nadrzędnym kopii roboczej pozwoliło mi pomyślnie dodać i zatwierdzić nowy katalog (oczywiście po ustaleniu uprawnień do plików).


2

Używamy maven i svn. Błędne wpisanie katalogu docelowego do SVN spowodowało ten błąd. Usunięcie tego naprawiło wszystko, jeśli ta podpowiedź pomaga komukolwiek.


Usuwanie co / skąd dokładnie?
DerMike,

maven tworzy katalog „docelowy” podczas budowania. Zwykle nikt nie powinien tego sprawdzać. Akredytowane zameldowanie spowodowało problem z zezwoleniem przy następnym kasie, który spowodował ten błąd. Usunięcie katalogu „docelowego” ze SVN rozwiązało problem.
Madu

2

Próbowałem svn rm --force /path/to/dirbezskutecznie, ale skończyło się na tym, że to działa svn upi naprawiłem to.


1

Miałem ten błąd ostatnio, gdy pliki zostały wykluczone przez ustawienia w moich globalnych plikach SVN. Błąd był szczególnie paskudny, ponieważ usunąłem również pliki bezpośrednio z repozytorium - a to oznaczało, że powyższe rozwiązania, które odmawiały, nie będą działać. W takim przypadku ręczne usunięcie katalogu .svn z katalogu, który usunąłem z SVN, pozwoliło mi uruchomić aktualizację, która następnie pozwoliła mi zatwierdzić.


1

Miałem ten sam problem, gdy próbowałem przełączyć „C: \ superfolder”

Komunikaty o błędach:

Directory 'C:\superfolder\subfolder\.svn'
containing
working copy admin area is missing
Please execute the 'Cleanup' command.

Po próbie wykonania „czyszczenia” otrzymałem następujący błąd:

 Cleanup failed to process the following paths:
 C:\superfolder\
'C:\superfolder\subfolder\' is not a working copy directory

Rozwiązanie:

  1. Usuń folder „podfolder”
  2. Oczyść folder „superfolder”
  3. Spróbuj ponownie przełączyć folder „superfolder”

to zadziałało dla mnie. Daj mi znać, jeśli to również działa dla Ciebie.


1

Ostatnio miałem ten błąd. Było to spowodowane tym, że root posiadał kilka plików w katalogu powodujących ten błąd.

Po zmianie uprawnień wszystko działało zgodnie z oczekiwaniami.


1

Nie rozumiem wiele z twoich postów. Moje rozwiązanie to

  1. Wytnij problematyczny folder i skopiuj do jakiejś lokalizacji.
  2. Pobierz rozwiązanie z Subversion do innego katalogu roboczego (tylko nowego).
  3. Dodaj zapisany folder do nowej kopii roboczej i dodaj jako istniejący projekt (jeśli jest to projekt jak w moim przypadku).
  4. Popełnić;

1

Miałem ten problem. Po prostu tymczasowo przenieś blabla w inne miejsce, powiedz svn, aby cofnął, a następnie przenieś go z powrotem. Jest traktowany jako nowy dodatek. Prosty!


1

Najprostszy, który pomógł mi:

rm -rf _dir_in_question_
svn up

Jeśli masz zmiany w problematycznym katalogu, nie jest to dla ciebie dobre rozwiązanie.


1

Napotkałem ten problem, zastępując bibliotekę API innej firmy nowszą wersją i żadne z tych rozwiązań tak naprawdę nie działało dla mnie, ponieważ chciałem zastąpić wersję SVN wersją lokalną. Moje rozwiązanie było następujące:

1) Przenieś folder naruszający prawo do mojego katalogu domowego, usuń go z SVN i zatwierdź:

mv foldercausingproblem ~/
svn --force delete foldercausingproblem
svn commit --message "Temporary removing folder with old API"

2) Umieść folder z powrotem, dodaj go do SVN i zatwierdź ponownie:

mv ~/foldercausingproblem ./
svn --force add .
svn commit --message "Finally all working!"

Nieco irytujące, że trzeba popełnić dwa razy, ale wydaje się, że zadziałało dobrze.


Zasadniczo lubię pracować nad kodem oddzielnie od mojej roboczej kopii repozytorium (IDE, kompilatory, analizatory błędów itp. Nie lubią .svn, aw Eclipse afaik nie ma komendy „KAŻDY IGNORE .SVN Z WYJĄTKIEM SVN!”; oznacza to, że podstawowy proces zatwierdzania SVN jest dla mnie: 1. pobranie roboczej kopii repo 2. usunięcie katalogu głównego projektu Mam aktualizację do 3. skopiowanie i wklejenie zaktualizowanego katalogu projektu do katalogu nadrzędnego projektu w kopii roboczej 4. svn dodaj --force <projname> 5. commit. Zwykle działa, ale czasami może wyrzucić błąd PO. Poprawka Jamiego Browna zadziałała w moim przypadku
CCJ

0

Na wypadek, gdyby ktoś chciał jeszcze innego rozwiązania:

  1. Sprawdź w nowym folderze jako „foldername2”
  2. Przejdź do przeglądarki repozytorium Tortise SVN
  3. Zmień nazwę „foldername2” na „foldername”
  4. W Eksploratorze Windows wykonaj aktualizację

Mam nadzieję, że to komuś pomoże.

-Ev


rozwiązanie tylko dla systemu Windows.
Raptor,

0

Dla mnie ten sam problem wystąpił, gdy oboje:

  • usunięto ( --force) plik .map
  • dodano * .map do svn:ignoreviasvn propedit svn:ignore .

Moje rozwiązanie polegało na:

  1. cofnij zmiany we właściwości
  2. zatwierdzić zmiany w plikach
  3. sprawdź świeżą kopię repozytorium (niestety!)
  4. zmień właściwość i zatwierdź

0

Miałem ten problem, gdy próbowałem dodać katalog do svn. Rozwiązałem to, przechodząc do przeglądarki repo. Kliknij prawym przyciskiem myszy w lewym oknie, wybierz dodaj folder i dodaj katalog bezpośrednio w przeglądarce repozytoriów.

Następnie usunąłem katalog lokalnie (po utworzeniu kopii zapasowej), wykonałem czyszczenie i aktualizację svn i wszystko znowu działało.


Mogę dodać, że jest to dodane do mojego pliku „svn sucks”.
Speck

0

Przede wszystkim pobierz projekt do swojego systemu w folderze. Następnie usuń folder .svn z projektu konfliktu i skopiuj folder .svn z nowego folderu kasy i wklej do folderu kopii roboczej. Następnie problem został rozwiązany.


0

Typowym zadaniem, jakie napotkałem, było zabranie jednego katalogu repozytoriów w fazie przejściowej i skopiowanie go do innego repozytorium - oba pod SVN i oba o tej samej nazwie. Sposób, który działał dla mnie był następujący:

svn --force delete PROBLEMATIC-DIR
svn export "https://OLD REPO-A/ new-repo-A"
svn add new-repo-A
svn commit new-repo-A
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.