TortoiseSVNを使用して、約25,000のファイルをVisualSVNに追加してコミットしようとしました。
コミットダイアログはロックされました(予想どおり)が、スレッドがブロックされてしばらくすると、一度に小さなファイルチャンクをコミットすることを期待して、亀を殺しました。
今、私はこのエラーを受け取ります:
エラー:コミットに失敗しました(詳細が続きます):
作業コピー「C:\ INTERNAL\Icons\Oxygen 4.10.1」がロックされています。
「C:\ INTERNAL\Icons\Oxygen 4.10.1\scalable\places\PaxHeaders.14455」はすでにロックされています
TortoiseProc.exe
を強制終了し、VisualSVNを数回再起動しましたが、まだエラーが発生します。
また、フォルダーを右クリックしてロックの解除を選択しましたが、次のようになります:
ロックを解除するものは何もありません。この作業コピーにロックされているファイルはありません。
svn st
を実行すると、追加されるのを待っているすべてのファイルの非常に長い出力が得られます。
関係のないもの(2、3日前)をコミットしようとしても、同じエラーが発生します。
同じサーバー上の別のリポジトリに正常にコミットできます。
ロックを解除してこれらのファイルをコミットするにはどうすればよいですか?
SVNクリーンアップを試してください。私は同じ問題を抱えていて、それを行った後、ロックが解除されました。
具体的には The Tortoise SVN Cleanup Documentation から:
サーバーの問題などが原因でSubversionコマンドを正常に完了できない場合、作業コピーが一貫性のない状態のままになる可能性があります。その場合、フォルダーでTortoiseSVN→クリーンアップを使用する必要があります。作業コピーの最上位でこれを行うことをお勧めします。
クリーンアップダイアログには、作業コピーをクリーンな状態にする他の便利なオプションもあります。
作業コピーのステータスをクリーンアップする前述のように、このオプションは一貫性のない作業コピーを実行可能かつ使用可能な状態にしようとします。これは、持っているデータには影響せず、作業コピーデータベースの内部状態にのみ影響します。これは、古いTortoiseSVNクライアントまたは他のSVNクライアントから知っている実際のクリーンアップコマンドです。
推奨されるSVNクリーンアップオプションのスクリーンショットは次のとおりです。
ジョーダンの答えにほんの少し追加しただけで、私は同じ問題を抱えていましたが、問題のフォルダーのクリーンアップがロックのために失敗していました。それを修正するには、親ディレクトリでSVNクリーンアップを実行し、次に問題のディレクトリで実行する必要がありました。