web-dev-qa-db-ja.com

SVN 405メソッドは許可されていません

SVNのフォルダーを誤って削除し、すぐに追加し直しました。私はこれで問題に遭遇し、私の解決策はローカルコピーとサーバーコピーからフォルダを完全に削除することになりました。他のファイルやフォルダーで問題なく更新とコミットを行うことができますが、同じ名前のフォルダーを作成、追加、コミットしようとすると、次のエラーが表示されます。

svn: '/ svn/www /!svn/wrk/9de0d765-2203-456c-af16-58e792ec7ac0/trunk/htdocs/solutions/medical'に対するMKCOLリクエストへの応答として、サーバーが予期しない戻り値(405 Method Not Allowed)を送信しました

数え切れないほどのクリーンアップ、コミット、更新などを実行しました。何も問題を解決しません。アイデア?

参考までに、最上位フォルダの名前を変更するオプションはありません。

122
roadsunknown

私の推測では、SVNに追加しようとしているフォルダーは既に存在しますです。別のフォルダーにファイルをチェックアウトして、トランクに必要なフォルダーが既にあるかどうかを確認して確認できます。

170
Shaji

修正する最も簡単な方法は、影響を受けるフォルダを複製し、別の名前でコミットすることでした。次にsvn mv duplicateFolder originalFolder。とても簡単。

したがって、folder1を取り、folder1Copyを作成します。

svn delete folder1
svn add folder1Copy

コミットおよび更新:

svn mv folder1Copy/ folder1/

再度コミットすると修正されます。

56
TuK

「消えた」フォルダはlibraries/fofでした。

削除してから更新を実行すると、表示されません。

cd libaries
svn up

(何も起こりません)。

しかし、実際の名前で更新する:

svn update fof

トリックを行い、更新されました。そこで、(手動でtarアーカイブされた)作業コピーを爆発させ、再コミットしました。最も簡単なソリューション。

10
Riccardo Zorn

これを自分のリポジトリで修正しました。私はWindowsでTortoiseSVNを使用しているので、コマンドラインでこれがどのコマンドに変換されるのか正確にはわかりませんが、次のようにしました。

問題のあるフォルダーはlibと呼ばれ、追加される予定でした。

  • 最初にaddを元に戻したので、SVNがそれに注意を払わなくなりました。
  • 次に、Windowsのコンテキストメニューを使用して名前を(libsに変更し、重要ではありません)、追加して、正常にコミットしました。
  • 最後に、TortoiseSVNのコンテキストメニューを使用して名前をlibに戻し(これはおそらく重要です)、再度コミットしました。
4
andronikus

また、私はこの問題に今会い、このようにして解決しました。それをここに記録し、他の人に役立つことを願っています。

シナリオ:

  1. コードをコミットする前に、リビジョン:100
  2. (他の誰かがコードをコミットします...リビジョンは199に増加しました)
  3. 私は(「svn up」を実行するのを忘れていました)、コードをコミットしました。今は私のリビジョン:200
  4. 「svn up」を実行します。

エラーが発生しました。

解決:

  1. $ mv current_copy copy_back#現在のコードコピーの名前を変更する
  2. $ svn checkout current_copy#もう一度チェックアウトする
  3. $ cp copy_back/current_copy#変更を復元します

同様の問題がありました。私は最終的に軌道からそれを否定し、その過程でSVNの履歴を失いました。しかし、少なくとも私は、そのいまいましいエラーをなくしました。

これはおそらく実行するコマンドの次善のシーケンスですが、実際に動作させるために実際に行ったコマンドのシーケンスにかなり忠実に従う必要があります。

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"
3
Brad Knowles

code.google.comを使用してSubversionリポジトリをホストする場合。

あなたは以下のものを知っていますか?

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

Non-members may check out a read-only working copy anonymously over HTTPステータスを使用していると正確に述べたエラー。したがって、これまでコミットまたは何かを行うことはできません。

Project members authenticate over HTTPS to allow committing changesを使用する必要があります。

今は大丈夫です。

1
Huy Tower

同じ問題が発生し、次の方法で修正できました。

  1. フォルダを別の場所にコピーします。
  2. コピーしたフォルダーから.svnを削除します
  3. 元のフォルダーを右クリックして、「SVN Checkout」を選択します
  4. (3)が見つからない場合、あなたのケースは私のものとは異なります。
  5. REPO-BROWSERのディレクトリが正しいかどうかを確認してください。私の場合、これが原因でした。
  6. チェックアウト
  7. コピーしたフォルダーから元のディレクトリにファイルを取り戻します。
  8. コミット。
0
user3010191

これは、svnに配置しようとしているフォルダー/ファイルが既に存在することを意味します。私のアドバイスは、何かをする前に、フォルダ/ファイルを右クリックして、リポジトリブラウザをクリックすることです。これにより、svnにすでに存在するすべてのファイル/サブフォルダーなどを確認できます。必要なファイル/フォルダーがsvnに存在しない場合は、追加するファイルを(バックアップを取って)削除してから、更新を実行します。

0
Kaveesh Kanwal

現在追加されているディレクトリは、すでにリポジトリにコミットされています。そのため、リポジトリ内のディレクトリを削除し、同じディレクトリを再度コミットします。

0
saravanabawa