Błąd Subversion: (Metoda 405 niedozwolona) w odpowiedzi na MKCOL

65

Podczas próby zatwierdzenia dodania nowego katalogu pojawia się następujący błąd.

svn: Commit failed (details follow):
svn: Server sent unexpected return value (405 Method Not Allowed) in response to MKCOL request for '....

Nigdy wcześniej nie widziałem tego błędu. Jak mogę rozwiązać ten problem?

Rozwiązanie
Udało mi się rozwiązać problem:

  • Usuń katalog nadrzędny folderu, w którym występuje problem.
  • Wykonaj aktualizację SVN.
  • Folder o tej samej nazwie co nowy już istniał w repozytorium.
  • Usuń ten folder.
  • Zatwierdź SVN.
  • Skopiuj nowy folder, harmonogram dodawania i zatwierdzenie SVN.
Sergio del Amo
źródło
Brakuje informacji, takich jak konfiguracja, transport (HTTP / HTTPS), komunikaty w dzienniku błędów serwera (najważniejsze), jeśli prowadzisz usługę pamięci podręcznej między klientem a serwerem itp.
Juliano
7
Dodaj rozwiązania jako odpowiedzi, zamiast dodawać do pytania
Sam Cogan
3
Nienawidzę svn dając błąd i przestać. Wygląda jak dziecko, które cały czas węszy. Cofnąłem, potem dodałem, a potem popełniłem i magicznie zaakceptowałem serwer.
Repozytorium kodów Google patrz - stackoverflow.com/a/32636072/1406510
nanosoft

Odpowiedzi:

44

Ten błąd zwykle wskazywał, że folder, który próbujesz dodać, już istnieje w repozytorium - czy zrobiłeś ostatnio aktualizację, czy też zrobiłeś nierekurencyjne pobieranie na początek?

Wcześniej napotkałem ten błąd - znalazłem blog, który powiedział mi, na czym polega problem. Rozwiązanie było trochę bardziej złożone, usuń dany katalog z mojej kopii roboczej (kopiując go gdzie indziej), uruchom aktualizację rekurencyjną, a następnie ręcznie połącz dwa katalogi.

Edycja: Opps - już udzielono odpowiedzi w treści pytania. I tutaj byłem podekscytowany, że znałem odpowiedź na pytanie bez odpowiedzi :)

andrewc
źródło
@Andrew - cóż, poprawnie odpowiedziałeś na pytanie ... @Sergio powinien był odpowiedzieć na swoje własne pytanie.
Josh
8

Miałem podobny problem z MKACTIVITY na Googlecode. Było tak, ponieważ sprawdziłem repozytorium za pomocą http :, ale zameldowanie wymagało https :.

Troy Daniels
źródło
Świetny haczyk - miałem właśnie uwolnić furię niecierpliwego programisty na mojej maszynie. :) Musisz ponownie sprawdzić folder za pomocą https: (lub jeśli jesteś podstępny, wyczyść folder oprócz .svn, a następnie zmodyfikuj zawartość .svn / wpisy, które mają adres URL z http => https. Teraz ekran zatwierdzenia wyświetlałby adres URL https.)
Gishu
5

Otrzymałem ten sam błąd i udało mi się go rozwiązać:

  1. SVN Zmień nazwę problematycznego katalogu na „foo” lub cokolwiek innego
  2. SVN Commit
  3. SVN Zmień nazwę z powrotem na żądaną nazwę
  4. SVN Commit

Nie jestem pewien, czy to działa we wszystkich przypadkach, ale jest to prostsze niż usunięcie katalogu nadrzędnego.

Sam Dutton
źródło
To proste rozwiązanie rozwiązało mój problem. Wielkie dzięki! :)
Consuela
4

Czy twoje repozytorium svn zezwala na zatwierdzanie przez HTTP? Niektóre repozytoria, takie jak SourceForge, umożliwiają anonimowe pobieranie przez HTTP, ale wymagają od programistów logowania za pośrednictwem svn i SSH.

Dave Cheney
źródło
3

W moim przypadku miałem problemy ze sprawdzaniem plików w folderze. Postępowałem zgodnie z instrukcjami Sergio z kilkoma zmianami.

  1. Skopiowałem problemowy katalog nadrzędny.
  2. Usunięte pliki .svn w skopiowanym katalogu
  3. svn delete / katalog_domeny
  4. Popełnić
  5. Utwórz nowy katalog w repozytorium
  6. Popełnić
  7. Przenieś podkatalogi z skopiowanego katalogu do repozytorium
  8. Popełnić
  9. Skopiuj pojedyncze pliki
  10. Popełnić

Miałem kilka plików, z którymi miałem problemy. Zostawiłem je poza repozytorium, ale odtworzyłem je pod nową nazwą.

Dawn Green
źródło
2

Miałem ten problem, kiedy usunąłem katalog z SVN, a następnie odtworzyłem go, kiedy zatwierdziłem nowy dodany katalog, SVN spowodował ten błąd. Rozwiązałem problem, uruchamiając SVN w nowym dodanym katalogu, a następnie ręcznie rozwiązałem konflikty .

imikay
źródło
1

Korzystając z Unfuddle, hostowanej usługi svn, wielokrotnie widzę ten błąd, gdy plik .svn zostaje zdeptany przez kopiowanie plików w wyszukiwarce OS X. Inkantacja svn, która zadziałała dla mnie:

  • Odwracać
  • aktualizacja
  • usuń folder za pomocą zdalnego adresu URL
  • dodaj i zatwierdź folder
Xentek
źródło
0

W moim przypadku dodawałem nowy katalog, który metadane lokalne (klienta) założyły, że są już na serwerze, a Oczyszczanie go nie poprawiło. Utworzyłem kopię zapasową wszystkich nowych i zmodyfikowanych plików, usunąłem wszystko (oprócz głównego folderu .svn), uruchomiłem Aktualizację, aby przywrócić pliki, i ponownie skopiowałem do katalogu nowe i zmodyfikowane pliki, których kopię zapasową wykonałem. Dodałem ponownie nowe pliki i zatwierdziłem pomyślnie.

stympy77
źródło
0

W Eclipse można to łatwo naprawić.

Zespół> Przełącz na inny Tag / oddział

Wybierz, w pełni rekurencyjny i zaznacz Zmień kopię roboczą na określoną głębokość

wciśnij OK

Ikona folderu zmienia się. Kliknij prawym przyciskiem myszy i (zespół>) Oznacz jako rozwiązane.

To wszystko, teraz możesz popełnić.

juliangonzalez
źródło
Pamiętaj, że Eclipse jest narzędziem programistycznym, a nie tak naprawdę celem ServerFault.
Andrew B,
0

Utwórz kopię zapasową folderu.
Usuń folder z repozytorium (używając Repo-Browser).
Zaangażuj się ponownie.

Działa dobrze dla mnie.
Marcus

Marcus
źródło
0

miałem podobny problem, utworzyłem kopię zapasową katalogu (dla bezpieczeństwa) niż zaktualizowałem folder svn. potem mogłem ponownie popełnić. (i nie użyłem mojej kopii zapasowej)

Ohad Cohen
źródło
-1

Miałem problem z e175002 200 OK. Ale przeczytałem, że ścieżka w komunikacie o błędzie mówiła o niewłaściwym serwerze, więc adres URL mojego łącza nie był dobry ( http: // localhost: 80 / path / to / my / trunk / )… czekaj! LOKALNY GOSPODARZ ?! ... A teraz zdaję sobie sprawę, że dzieje się tak, ponieważ przy pierwszym obrocie moje ustawienia wysłały moje pliki projektu lokalnie do mojego repo… Więc przy pierwszym obrocie upewnij się, że ustawienia adresu IP twojego serwera nie są złe, ponieważ po tym ... repozytorium będzie zawierało błędne informacje i będziesz musiał znaleźć sposób na zmodyfikowanie tych złych ustawień na nim lub na każdym kliencie, który chce użyć twojego repo po raz pierwszy.

Moją poprawką było sprawdzenie każdego folderu mojego projektu… w każdym folderze znajduje się folder .svn, w którym przechowywane są informacje, a w każdym folderze .svn plik o nazwie „wpisy”… W tym pliku znajduje się ścieżka do serwera, zastąpiłem złą linię dobrym adresem IP w każdym zapisanym wpisie w każdym folderze .svn. A potem nie więcej błędów.

Mam nadzieję, że to pomoże. :) przepraszam, jeśli trudno jest zrozumieć mój post ^^ 'Jestem trudniejszy.

Claod
źródło