Subversion-Fehler: (405-Methode nicht zulässig) als Antwort auf MKCOL


65

Beim Versuch, einen neuen Verzeichniszusatz festzulegen, wird die folgende Fehlermeldung angezeigt.

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

Ich habe diesen Fehler noch nie gesehen. Wie kann ich dieses Problem beheben?

Lösung
Ich habe das Problem gelöst:

  • Löschen Sie das übergeordnete Verzeichnis des Ordners, der das Problem verursacht.
  • Führen Sie ein SVN-Update durch.
  • Ein Ordner mit demselben Namen wie der neue war bereits im Repository vorhanden.
  • Löschen Sie diesen Ordner.
  • SVN-Festschreibung
  • Kopieren Sie den neuen Ordner, planen Sie das Hinzufügen und das Festschreiben des SVN.

Fehlen Informationen wie Ihre Konfiguration, Ihr Transport (HTTP / HTTPS), die Meldungen im Server-Fehlerprotokoll (die wichtigsten), wenn Sie einen Web-Cache-Dienst zwischen Client und Server ausführen, usw.
Juliano,

7
Bitte fügen Sie Lösungen als Antworten hinzu, anstatt sie der Frage hinzuzufügen
Sam Cogan,

3
Ich hasse svn fehler geben und aufhören. Es sieht aus wie ein Kind, das die ganze Zeit schnieft. Ich bin zurückgekehrt, habe dann einen festgeschriebenen und magisch beschuldigten Server hinzugefügt.

Für das Google Code Repository siehe - stackoverflow.com/a/32636072/1406510
nanosoft

Antworten:


44

Dieser Fehler deutet normalerweise darauf hin, dass der Ordner, den Sie hinzufügen möchten, bereits im Repository vorhanden ist. Haben Sie kürzlich ein Update durchgeführt oder haben Sie zunächst eine nicht rekursive Prüfung durchgeführt?

Ich bin bereits auf diesen Fehler gestoßen. Ich habe einen Blog gefunden, in dem das Problem beschrieben ist. Die Lösung war etwas komplexer. Entfernen Sie das betreffende Verzeichnis aus meiner Arbeitskopie (kopieren Sie es woanders hin), führen Sie eine rekursive Aktualisierung durch und führen Sie die beiden Verzeichnisse dann manuell zusammen.

Edit: Opps - bereits im Fragetext beantwortet. Und hier war ich ganz aufgeregt, dass ich die Antwort auf eine unbeantwortete Frage wusste :)


@Andrew - nun, du hast die Frage richtig beantwortet ... @Sergio hätte seine eigene Frage beantworten sollen.
Josh

8

Ich hatte ein ähnliches Problem mit MKACTIVITY auf Googlecode. Das lag daran, dass ich das Repository mit http: ausgecheckt hatte, das Einchecken jedoch https: erforderlich war.


Großartiger Fang - ich wollte gerade die Wut des ungeduldigen Programmierers auf meiner Maschine entfesseln. :) Entweder müssen Sie den Ordner mit https erneut überprüfen: (Wenn Sie den Ordner mit Ausnahme der .svn-Datei schlau löschen möchten, ändern Sie den Inhalt der .svn / -Einträge mit der URL von http => https Ein Commit-Bildschirm würde die https-URL anzeigen.)
Gishu


5

Ich habe den gleichen Fehler erhalten und konnte ihn beheben:

  1. SVN Benennen Sie das problematische Verzeichnis in 'foo' oder was auch immer um
  2. SVN-Commit
  3. SVN Benennen Sie wieder in den gewünschten Namen um
  4. SVN-Commit

Ich bin nicht sicher, ob dies in allen Fällen funktioniert, aber es ist einfacher als das übergeordnete Verzeichnis zu löschen.


Diese einfache Lösung hat mein Problem gelöst. Danke vielmals! :)
consuela

4

Ermöglicht Ihr SVN-Repository Commits über HTTP? Einige Repositorys, wie SourceForge, erlauben das anonyme Auschecken über HTTP, aber die Entwickler müssen sich über svn und SSH einchecken.


3

In meinem Fall hatte ich Probleme beim Einchecken von Dateien in einem Ordner. Ich folgte den Schritten, die Sergio mit ein paar Änderungen umrissen hatte.

  1. Kopierte das problematische übergeordnete Verzeichnis.
  2. Gelöschte .svn-Dateien im kopierten Verzeichnis
  3. svn delete / parent_directory
  4. Verpflichten
  5. Erstelle ein neues Verzeichnis in repo
  6. Verpflichten
  7. Verschieben Sie Unterverzeichnisse aus dem kopierten Verzeichnis in das Repository
  8. Verpflichten
  9. Kopieren Sie einzelne Dateien
  10. Verpflichten

Ich hatte ein paar Dateien, mit denen ich Probleme hatte. Ich habe sie aus dem Repository entfernt, sie aber mit einem neuen Namen neu erstellt.


2

Ich hatte dieses Problem, als ich ein Verzeichnis aus SVN entfernte und es dann neu erstellte, als ich das neu hinzugefügte Verzeichnis festschrieb. SVN ergab diesen Fehler. Ich habe das Problem gelöst, indem ich eine SVN für das neu hinzugefügte Verzeichnis ausgeführt und dann die Konflikte manuell gelöst habe .


1

Unter Verwendung von Unfuddle, einem gehosteten SVN-Dienst, wird dieser Fehler wiederholt angezeigt, wenn die SVN-Datei durch Kopieren im OS X-Finder mit Füßen getreten wird. Die SVN-Beschwörung, die bei mir funktioniert hat:

  • zurückkehren
  • aktualisieren
  • Löschen Sie den Ordner mit der Remote-URL
  • Ordner hinzufügen und festschreiben

0

In meinem Fall habe ich ein neues Verzeichnis hinzugefügt, von dem angenommen wird, dass sich meine lokalen (Client-) Metadaten bereits auf dem Server befinden, und das von Cleanup nicht korrigiert wurde. Ich habe alle neuen und geänderten Dateien gesichert, alles gelöscht (außer dem Stammordner .svn), Update ausgeführt, um die Dateien wiederherzustellen, und die neuen und geänderten Dateien, die ich gesichert hatte, wieder in das Verzeichnis kopiert. Ich habe die neuen Dateien erneut hinzugefügt und erfolgreich festgeschrieben.


0

In Eclipse ist es einfach zu beheben.

Team> Zu einem anderen Tag / Zweig wechseln

Wählen Sie, vollständig rekursiv und aktivieren Sie das Kontrollkästchen Arbeitskopie auf angegebene Tiefe ändern

drücke OK

Das Ordnersymbol ändert sich. Rechtsklick und (Team>) Als gelöst markieren.

Das war's, jetzt können Sie sich festlegen.


Bedenken Sie, dass Eclipse ein Entwicklungswerkzeug ist und nicht wirklich im Mittelpunkt von ServerFault steht.
Andrew B

0

Erstellen Sie eine Sicherungskopie des Ordners.
Löschen Sie den Ordner im Repository (mit dem Repo-Browser).
Erneut festschreiben.

Funktioniert gut für mich.
Marcus


0

ich hatte ein ähnliches problem, ich habe das verzeichnis gesichert (nur aus sicherheitsgründen) als den svn ordner zu aktualisieren. danach konnte ich mich wieder festlegen. (und mein Backup nicht verwendet)


-1

Ich hatte ein Problem mit e175002 200 OK. Aber ich habe gelesen, dass der Pfad in der Fehlermeldung über einen falschen Server sprach, daher war die URL meines Trunks nicht die richtige ( http: // localhost: 80 / path / to / my / trunk / )… warte! LOCALHOST?! ... Und jetzt merke ich, dass es daran liegt, dass meine Einstellungen bei meiner ersten Überarbeitung meine Projektdateien lokal an mein Repo gesendet haben repo wird falsche Informationen enthalten und Sie müssen einen Weg finden, diese schlechten Einstellungen daran oder an jedem Client, der Ihr Repo zum ersten Mal verwenden möchte, zu ändern.

Mein Fix war es, jeden Ordner meines Projekts zu überprüfen ... In jedem Ordner gibt es den .svn-Ordner, in dem Informationen gespeichert sind, und in jedem .svn-Ordner eine Datei mit dem Namen "entries" in jedem .svn ordner. Und dann keine Fehler mehr.

Ich hoffe es hilft. :) sorry wenn es schwer ist meinen post zu verstehen ^^ 'ich bin ein versucher.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.