Ich habe versehentlich einen Ordner in SVN gelöscht und ihn sofort wieder hinzugefügt. Ich hatte ein Problem damit und meine Lösung entfernte den Ordner vollständig von meiner lokalen Kopie sowie von der Serverkopie. Ich kann Aktualisierungen und Festschreibungen problemlos für jede andere Datei oder jeden anderen Ordner durchführen. Wenn ich jedoch versuche, einen Ordner mit demselben Namen zu erstellen, ihn hinzuzufügen und festzuschreiben, wird der folgende Fehler ausgegeben:
svn: Der Server hat einen unerwarteten Rückgabewert (405-Methode nicht zulässig) als Antwort auf die MKCOL-Anforderung für '/ svn/www /! svn/wrk/9de0d765-2203-456c-af16-58e792ec7ac0/trunk/htdocs/solutions/medical' gesendet.
Ich habe unzählige Bereinigungen, Commits, Updates usw. durchgeführt. Das Problem wurde durch nichts behoben. Ideen?
Zu Ihrer Information, ich habe keine Möglichkeit, den Ordner der obersten Ebene umzubenennen.
Ich vermute, dass der Ordner, den Sie hinzufügen möchten bereits vorhanden in SVN. Sie können bestätigen, indem Sie die Dateien in einen anderen Ordner auschecken und prüfen, ob der erforderliche Ordner bereits in trunk vorhanden ist.
Am schnellsten konnte ich das Problem beheben, indem ich den betroffenen Ordner duplizierte und ihn mit einem anderen Namen festschrieb. Dann svn mv duplicateFolder originalFolder
. Ziemlich einfach.
Also nimm folder1 und erstelle einen folder1Copy:
svn delete folder1
svn add folder1Copy
Übernehmen und aktualisieren:
svn mv folder1Copy/ folder1/
Erneut festschreiben und es ist behoben.
Mein "verschwundener" Ordner war libraries/fof
.
Wenn ich es löschte und dann ein Update ausführte, wurde es nicht angezeigt.
cd libaries
svn up
(nichts passiert).
Aber Aktualisierung mit dem tatsächlichen Namen:
svn update fof
tat den Trick und es wurde aktualisiert. Also habe ich meine (manuell tar-archivierte) Arbeitskopie darüber aufgelöst und erneut übergeben. Einfachste Lösung.
Ich habe das gerade in meinem eigenen Repository behoben. Ich verwende TortoiseSVN unter Windows, daher bin ich nicht sicher, in welche Befehle dies in der Befehlszeile übersetzt wird, aber hier ist, was ich getan habe:
Der problematische Ordner heißt lib
und sollte hinzugefügt werden.
libs
", was nicht wichtig ist), hinzugefügt und erfolgreich festgeschrieben.lib
umbenannt (dies ist wahrscheinlich wichtig) und erneut festgeschrieben.Ich habe dieses Problem auch erst jetzt getroffen und auf diese Weise gelöst. Also habe ich es hier aufgenommen und ich wünsche mir, dass es für andere nützlich ist.
Szenario:
Der Fehler ist aufgetreten.
Lösung:
Ich hatte ein ähnliches Problem. Am Ende habe ich es aus dem Orbit entfernt und dabei meine SVN-Geschichte verloren. Aber zumindest habe ich diesen verdammten Fehler behoben.
Dies ist wahrscheinlich eine suboptimale Folge von auszuführenden Befehlen, aber sie sollte ziemlich genau der Folge von Befehlen folgen, die ich tatsächlich ausgeführt habe, um die Dinge zum Laufen zu bringen:
cp -rp target ~/other/location/target-20111108
svn rm target --force
cp -rp ~/other/location/target-20111108 target-other-name
cd target-other-name
find . -name .svn -print | xargs rm -rf
cd ..
svn add target-other-name
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
svn mv target-other-name target
svn ci -m "Re-re-re-re-re-re-re-re-re-re import target"
Wenn du benutzt code.google.com
, um Ihr Subversion-Repository zu hosten.
Sie wissen unter Dinge, nicht wahr?
If you plan to make changes, use this command to check out the code as yourself using HTTPS:
# Project members authenticate over HTTPS to allow committing changes.
svn checkout https://.../svn/trunk/ user-...
When prompted, enter your generated googlecode.com password.
Use this command to anonymously check out the latest project source code:
# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://.../svn/trunk/ ...-read-only
Der Fehler, den Sie genau erwähnt haben, verwendet Non-members may check out a read-only working copy anonymously over HTTP
Status. Daher können Sie noch nichts festschreiben oder tun.
Du musst benutzen Project members authenticate over HTTPS to allow committing changes
Sache.
Es wird jetzt gut.
Ich bin auf dasselbe Problem gestoßen und konnte es folgendermaßen beheben:
Dies bedeutet, dass der Ordner/die Datei, den/die Sie auf svn ablegen möchten, bereits dort vorhanden ist. Mein Rat ist, bevor Sie etwas tun, klicken Sie mit der rechten Maustaste auf den Ordner/die Datei und klicken Sie auf Repo-Browser. Auf diese Weise können Sie alle Dateien/Unterordner usw. sehen, die bereits auf svn vorhanden sind. Wenn die erforderliche Datei/der Ordner nicht auf dem SVN vorhanden ist, löschen Sie einfach (nach dem Sichern) die Datei, die Sie hinzufügen möchten, und führen Sie dann ein Update aus.
Das aktuell hinzugefügte Verzeichnis ist bereits im Repository festgeschrieben. Löschen Sie daher das Verzeichnis im Repository und schreiben Sie dasselbe Verzeichnis erneut fest.