Tortoise SVNを使用して、作業コピーに変更を加えるたびに、サーバーのリポジトリの変更を更新してコミットします。しかし、数日から変更をコミットできなくなり、コミットしようとするたびに次のエラーが表示されます。
Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.
フォルダを右クリックしてTortoise SVN> Release lockを選択して、フォルダのロックを解除しようとしました。
ロックを解除するものは何もありません。この作業コピーにロックされているファイルはありません
何が問題なのでしょうか?
問題ありません...これを試してください:
これで確実に問題が解決します。私はこの多くの時間をしました... :)
注意。 [クリーンアップ]ダイアログで[ロックの解除]オプションが選択されていることを確認します。
受け入れられた答えは私にはうまくいきませんでした。この問題を修正するには、ロックされたファイルを右クリックし、repo-browser
を選択する必要がありました。これにより、SVNサーバー上にあるファイルのポップアップが開きました。次に、ロックされたファイルを右クリックし、break lock
を選択しました。
リポジトリブラウザを閉じたとき、エクスプローラに戻って、ようやくコミットできました!
私もこの問題に遭遇しました。ロックされている場合はチームで確認してください。チームの誰かが作業しているために何かがロックされている可能性があります(これにより、開発者は他の人が入って同じコンテンツで作業しようとせずに作業を行うことができます)。その場合、ロックを解除してから更新すると、ロックした開発者のデータが失われる可能性があります。
それを念頭に置いて、私の懸念は、「クリーンアップ」オプションが作業コピーを変更したり、Subversionのレポレベルから情報を削除する可能性があることでした。そうではありません。答えは私のために働いた。更新の途中でキャンセルをクリックすると、鉱山がロックされました。結局、私たちのブランチのいくつかを引っ張ったのですが、そのようなものは必要なかったので、キャンセルしました。作業コピーがロックされました。 「リリースロック」コマンドを使用したときに、「ロック」されたドキュメントが見つかりませんでした。これは私を困惑させ、いくつかのクイックリーディング(およびこのスレッド)で「クリーンアップ」コマンドを試みました。クリーンアップ後、問題は解決し、ロックされたものはなくなりました。
ソース: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html
SVNには「ロック」の複数の意味があり、「ロックの解除」またはロックを保持しているチームメイトについて話すこれらの回答のいくつかは、元の質問に関連する意味を使用していません。この質問は、「作業コピーロック」(つまり、コンピューター上の作業コピーに対して完全にローカルであり、ファイルまたはファイルのロック/チェックアウトを保持しているチームメイトとは関係ありません)を扱っています。 MicroEyesが受け入れた回答は、正しい使用方法に関するものであり、これが発生した場合の最良の選択肢です。
クリーンアップが機能しない場合は、プロジェクトの新しい作業コピーをチェックアウトする必要があります。変更されたコミットされていないファイルがある場合は、変更を失わないように、それらを新しい作業コピーにコピーする必要があります。
「ロック」の3つの使用法については、Tortoise SVNドキュメントのこのページを参照してください。 http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html
抜粋(強調を追加):
「ロック」の3つの意味
このセクションおよび本書のほぼすべての箇所で、「ロック」および「ロック」という言葉は、コミットの衝突を避けるためにユーザー間の相互排除のメカニズムを説明しています。残念なことに、Subversion、したがって本書では時々懸念する必要のある「ロック」が2種類あります。
2番目はworking copy locksで、同じ作業コピーで動作する複数のSubversionクライアント間の衝突を防ぐためにSubversionによって内部的に使用されます。通常、エラーのためにupdate/commit/...などのコマンドが中断されると、これらのロックを取得します。これらのロックは、「クリーンアップ」と呼ばれるセクションで説明されているように、作業コピーでクリーンアップコマンドを実行することで削除できます。
...
どのファイルがロックを持っているかわからなかったので、この問題から抜け出すためにしたことは:
これは私のために働いた。
下位のサブディレクトリでの「クリーンアップ」など、さまざまなことを試しました。最後に、最上位のフォルダーを更新してみました。なし。次に、「トップレベルのクリーンアップ」のヒントを読みます。やってみたクリーンアップ部分は成功しましたが、ロックは残りました。私の解決策は、トップレベルに戻って、クリーンアップしてから、ドリルダウンできる各赤い(!)フォルダーをクリーンアップするでした。すべてが「クリーンアップ」された後、アップデートは完全に機能しました。 「ロック解除」のヒントも、チームの誰かmightが正当なロックを持っていることを除いて、良さそうです。
私はsvnでファイルから自分をロックアウトすることができました-方法はわかりません-しかし、ロックを(再)取得しようとすると(カメはファイルの「ロックを取得」オプションを表示していました)、すでに持っていると文句を言いましたロック。ファイルを削除してディレクトリの変更をコミットしようとしました-同じ結果です。 CleanUp(オーバーレイの更新を含む)を試しましたが、それも失敗しました。
解決策は、Tortoiseリポジトリブラウザーに移動し、ファイルを見つけて、break lock関数を使用することでした。