コミット中の亀のSVNでの作業コピーのロックエラー


94

Tortoise SVNを使用して、作業用コピーに変更を加えるたびに、サーバーのリポジトリへの変更を更新およびコミットしています。しかし、数日後、変更をコミットできなくなり、コミットしようとするたびに次のエラーが発生します。

Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.

フォルダを右クリックしてTortoise SVN>ロックの解除を選択して、フォルダのロックを解除しようとしました、と述べています

ロックを解除するものは何もありません。この作業用コピーでロックされているファイルはありません

何が問題でしょうか?

回答:


232

問題ありません...これを試してください:

  • 最上位のSVNフォルダーに移動します。
  • (svnファイルがある)フォルダーを右クリック> TortoiseSVN> クリーンアップ

これは確かにあなたの問題を解決します。私はこの時間をたくさんしました... :)

注意。[クリーンアップ]ダイアログで[ロックの解除]オプションが選択されていることを確認します。


@MicroEyesに感謝します...今、私はコミットすることができます。ちょっと疑問があります。ファイルに変更を加えた後、最初にコミットしてから(作業コピーで)ファイルを更新する必要がありますか、それとも更新してからコミットする必要がありますか?
Anil

2
常に更新に従ってコミットします。そうしないと、バージョンのコピーが古いため、SVNサーバーに保存されているため、TortoiseSVNから更新するメッセージが表示されます。したがって、とにかく、更新してコミットする必要があります。
MicroEyes 2012

1
はい、それは私の現在のコピーをsvnリビジョンに更新することに関連した私の問題を解決しました。
Jayesh Bhoi 14

SVNにファイルを追加してコミットしようとしたところ、同じエラーが発生しました。cleanUpコマンドを試しましたが、この問題を解決できません。
Ashok Chandrapal 2015

私はこれをたくさん経験しています。このエラーメッセージが表示されるまでにsvnがかかる時間を短縮できますか(現在5〜10秒)。だから私はより早くクリーンアップを始めることができます。
not-a-user

15

受け入れられた答えは私にとってはうまくいきませんでした。この問題を修正するには、ロックされているファイルを右クリックして、を選択する必要がありましたrepo-browser。これにより、SVNサーバーにあるファイルのポップアップが開きました。次に、ロックされたファイルを右クリックしてを選択しましたbreak lock

リポジトリブラウザを閉じたとき、エクスプローラに戻ってようやくコミットできました!


「クリーンアップ」ダイアログで「ロックの解除」オプションが選択されていることを確認する必要があるだけです。私はそれがデフォルトで選択されていると思います(そしてそれがこれが最初の答えで言及されなかった理由です)。
Nux

12
  1. フォルダを右クリックします。
  2. TortoiseSVN->変更を確認してください。
  3. [リポジトリをチェック]ボタンをクリックします。
  4. 返されたすべてのファイルのロックを解除します。

3

私もこの問題に遭遇しました。それがロックされている場合は、チームで確認してください。チームの誰かが作業しているためにロックされているものがあるかもしれません(これにより、開発者は他の人が入って同じコンテンツで作業することなく作業を行うことができます)。その場合、ロックを解除してから更新すると、ロックした開発者のデータが失われる可能性があります。

そのことを念頭に置いて、私の懸念は、「クリーンアップ」オプションが作業コピーを変更したり、Subversionのレポレベルから情報を削除したりする可能性があることでした。そうではありません。答えは私のために働いた。更新の途中で「キャンセル」をクリックすると、鉱山がロックされました。私はいくつかのブランチを引っ張ってしまい、スタッフは必要なかったのでキャンセルを押しました。作業コピーがロックされました。「ロックを解除」コマンドを使用したときに「ロック」されたドキュメントは見つかりませんでした。これは私を困惑させ、いくつかのクイックリーディング(およびこのスレッド)で「クリーンアップ」コマンドを試みました。クリーンアップ後、問題は解決され、何もロックされなくなりました。

ソース:http : //tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html


2

SVNの「ロック」には複数の意味があり、「ロックの解除」またはロックを保持しているチームメイトに関するこれらの回答の一部は、元の質問に関連する意味を使用していません。この質問は「作業コピーのロック」を扱います(つまり、それらはコンピュータの作業コピーに対して完全にローカルであり、ファイルまたはファイルのロック/チェックアウトを保持しているチームメイトとは何の関係もありません)。MicroEyesによって受け入れられた回答は正しい使用法を参照しており、これが発生した場合の最良のオプションです。

クリーンアップが機能しない場合は、プロジェクトの新しい作業コピーをチェックアウトする必要があるかもしれません。変更された、コミットされていないファイルがある場合は、変更内容を失わないように、新しい作業コピーにコピーする必要があります。

「ロック」の3つの使用法の説明については、Tortoise SVNドキュメントのこのページを参照してください。http//tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

抜粋(強調を追加):

「ロック」の3つの意味

このセクション、およびこの本のほぼすべての箇所で、「ロック」および「ロック」という言葉は、コミットの衝突を回避するためにユーザー間の相互排除のメカニズムを説明しています。残念ながら、Subversion、つまりこの本が関係する必要のある「ロック」には他に2つの種類があります。

2つ目は、作業コピーロックです。これは、同じ作業コピーで動作する複数のSubversionクライアント間の衝突を防ぐためにSubversionによって内部的に使用されます。通常、エラーのためにupdate / commit / ...などのコマンドが中断されると、これらのロックが取得されます。これらのロックは、「クリーンアップ」で説明されているように、作業コピーでcleanupコマンドを実行することで削除できます。

...


2

どのファイルがロックされているのかわかりませんでしたので、この問題を回避するために何をしましたか:

  1. 最上位のフォルダに移動しました
  2. [クリーンアップ]をクリックし、クリーンアップ方法からチェックマークを付けます-> [ロックを解除]

これでうまくいきました。


1

下位のサブディレクトリの「クリーンアップ」など、いろいろなことを試しました。最後に、最上位フォルダを更新してみました。何もない。次に、「最上位のクリーンアップ」のヒントを読みます。やってみました。クリーンアップ部分は成功しましたが、ロックは残りました。私の解決策は、最上位に戻り、クリーンアップしてから、ドリルダウンできる各赤(!)フォルダーをクリーンアップすることでした。結局「クリーンアップ」されたので、アップデートは完全に機能しました。「ロックの解除」のヒントも見栄えがしますが、チームの誰かが物事に正当なロックをかけている可能性があるという例外があります。


0

私はなんとかsvnのファイルから自分自身をロックアウトしました-方法がわかりません-しかし、ロックを(再)取得しようとしたとき(亀はファイルの「ロックの取得」オプションを表示していました)、すでにロック。ファイルを削除してディレクトリの変更をコミットしてみました-同じ結果です。CleanUp(オーバーレイの更新を含む)を試しましたが、それも失敗しました。

解決策は、Tortoiseリポジトリブラウザーに移動し、ファイルを見つけて、ブレークロック機能を使用することでした。


0

これ(https://stackoverflow.com/a/11764922/3045875)が役に立たない場合:別のSVNツールが干渉しているかどうかを確認し、ツールを閉じます。TortoiseSVNを使用したマージで数時間苦労しただけで、そのようなロックエラーが何十回もありました。最終的に、MatlabsのSVN統合が干渉していることがわかり、それを閉じた後、すべてがうまくいきました。


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