Subversionエラー:(405 Method Not Allowed)in response to MKCOL


65

新しいディレクトリの追加をコミットしようとすると、次のエラーが表示されます。

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

このエラーを見たことはありません。この問題を修正するにはどうすればよいですか?

ソリューション
私は問題を解決することができました:

  • 問題のあるフォルダーの親のディレクトリを削除します。
  • SVN更新を行います。
  • 新しい名前と同じ名前のフォルダーがリポジトリに既に存在します。
  • このフォルダーを削除します。
  • SVNコミット。
  • 新しいフォルダーをコピーし、追加のスケジュールとSVNコミットを行います。

ご使用の構成のように、情報が欠けている、あなたのトランスポート(HTTP / HTTPS)、サーバーのエラーログにメッセージ(最も重要な)、あなたは、クライアントとサーバーなどの間でWebキャッシュサービスを実行している場合...
ジュリアーノ

7
むしろ、質問に追加するよりも、答えようのソリューションを追加してください
サム・コーガン

3
私はエラーを出して停止するsvnが嫌いです。それはいつも子どもたちがうろついているように見えます。私は元に戻し、追加してからコミットし、魔法のようにサーバーを受け入れました。

Googleのコードリポジトリを参照してください- stackoverflow.com/a/32636072/1406510
nanosoft

回答:


44

通常、このエラーは、追加しようとしているフォルダーがリポジトリに既に存在することを示しています-最近更新を行ったのですか、それとも最初に非再帰的なチェックアウトを行いましたか?

以前にこのエラーに遭遇しました-問題が何であるかを教えてくれるブログを見つけました。解決策はもう少し複雑で、問題のディレクトリを作業コピーから削除(別の場所にコピー)し、再帰的な更新を実行してから、2つのディレクトリを手動でマージします。

編集:Opps-質問の本文で既に回答済み。そして、ここで私は、未回答の質問に対する答えを知っていることに興奮していました:)


@Andrew-さて、あなたは質問に適切に答えました... @Sergioは彼自身の質問に答えるべきでした。
ジョシュ

8

私はgooglecodeのMKACTIVITYで同様の問題を抱えていました。これは、http:でリポジトリをチェックアウトしたが、チェックインにはhttps:が必要だったためです。


素晴らしいキャッチ-私はちょうど私のマシンでせっかちなプログラマーの怒りを解き放とうとしていました。:) https:でフォルダを再チェックアウトする必要があります(または、.svn以外のフォルダをこっそり消去してから、http => httpsのURLを持つ.svn / entriesの内容を変更します。コミット画面にはhttps URLが表示されます。)
岐阜


5

私は同じエラーを受け取り、それをどうにかして解決しました:

  1. SVN問題のあるディレクトリの名前を「foo」などに変更します
  2. SVNコミット
  3. SVN名前を希望の名前に戻します
  4. SVNコミット

これがすべての場合に機能するかどうかはわかりませんが、親ディレクトリを削除するよりも簡単です。


その簡単な解決策で私の問題は解決しました。どうもありがとう!:)
consuela

4

あなたのsvnリポジトリはHTTP経由のコミットを許可していますか?SourceForgeなどの一部のリポジトリでは、HTTPを介した匿名チェックアウトが許可さていますが、開発者はsvnおよびSSHを介してチェックインする必要があります。


3

私の場合、フォルダー内のファイルのチェックインに問題がありました。Sergioが概説した手順に従い、いくつかの変更を加えました。

  1. 問題のある親ディレクトリをコピーしました。
  2. コピーされたディレクトリ内の削除された.svnファイル
  3. svn delete / parent_directory
  4. コミット
  5. リポジトリに新しいディレクトリを作成
  6. コミット
  7. サブディレクトリをコピーしたディレクトリからレポに移動します
  8. コミット
  9. 個々のファイルをコピーする
  10. コミット

いくつかのファイルに挑戦しました。リポジトリから除外しましたが、新しい名前で再作成しました。


2

SVNからディレクトリを削除してから再作成したときにこの問題が発生し、新しく追加したディレクトリをコミットしたときにSVNからこのエラーが発生しました。新しく追加したディレクトリでSVNを実行して問題を解決し、手動で競合を解決しました


1

ホストされたsvnサービスであるUnfuddleを使用すると、.svnがOS Xファインダーでのファイルコピーによって踏みにじられたときにこのエラーが繰り返し表示されます。私のために働いたsvn呪文:

  • 元に戻す
  • 更新
  • リモートURLを使用してフォルダーを削除します
  • フォルダーを追加してコミットします

0

私の場合、ローカル(クライアント)メタデータが既にサーバー上にあると想定した新しいディレクトリを追加していましたが、Cleanupはそれを修正しませんでした。すべての新規および変更されたファイルをバックアップし、すべてを削除し(ルート.svnフォルダーを除く)、Updateを実行してファイルを復元し、バックアップした新規および変更されたファイルをディレクトリにコピーしました。新しいファイルを再度追加し、正常にコミットしました。


0

Eclipseでは簡単に修正できます。

チーム>別のタグ/ブランチに切り替える

選択し、完全に再帰して、作業コピーを指定の深さに変更するをチェックします

OKを押す

フォルダのアイコンが変わります。右クリックして(チーム>)解決済みとマークします。

これで、コミットできます。


Eclipseは開発ツールであり、ServerFaultの焦点では​​ないことに注意してください。
アンドリューB

0

フォルダーのバックアップを作成します。
リポジトリ内のフォルダーを削除します(Repo-Browserを使用)。
再度コミットします。

私にとってはうまくいきます。
マーカス


0

私は同様の問題を抱えていたので、svnフォルダを更新するよりもディレクトリをバックアップしました(安全のためだけに)。その後、私は再びコミットすることができました。(バックアップを使用していません)


-1

e175002 200 OKで問題が発生しました。しかし、エラーメッセージのパスが間違ったサーバーについて語っていることを読んだため、トランクのURLは適切なものではありません(http:// localhost:80 / path / to / my / trunk /)…待ってください!LOCALHOST?!...そして今、私はそれが私の最初の回転で私の設定が私のレポにローカルに私のプロジェクトファイルを送ったためだということに気付きます...だからあなたの最初の回転であなたのサーバーのIPの設定が間違っていないことを確認してください...リポジトリには誤った情報が含まれているため、その悪い設定、または初めてリポジトリを使用したいすべてのクライアントの設定を変更する方法を見つける必要があります。

私の修正は、プロジェクトのすべてのフォルダーをチェックすることでした…。すべてのフォルダーに情報を保存する.svnフォルダーがあり、すべての.svnフォルダーに「エントリ」と呼ばれるファイルがあります...このファイルにはサーバーへのパスがあり、保存されたすべてのエントリの悪いIPを良いIPに置き換えましたすべての.svnフォルダー内。そして、それ以上のエラーはありません。

それが役に立てば幸い。:)投稿を理解するのが難しい場合は申し訳ありません^^ '私は一生懸命頑張っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.