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.

e-satis
źródło

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”.

znak
źródło
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.

Matt Setter
źródło
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.

Maurizio
źródło
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.

Rob Wells
źródło
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.

Alexander
źródło
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ąć

Mala
źródło
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).

Rob DiCiuccio
źródło
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.

Madu
źródło
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.

Nathan JB
źródło
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ć.

Casebash
źródło
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.

Andreas
źródło
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.

JJ
źródło
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ć;
M'vy
źródło
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!

Borowy
źródło
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.

allprog
źródło
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.

Jamie Brown
źródło
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

Ev.
źródło
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ź
18446744073709551615
źródło
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.

Plamka
źródł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.

Jaideep Singh Raikwar
źródło
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
texasdave
źródło