以前にEclipseでSVNツール(Subversion、破壊的)を使用したことがある場合、「working copy 'XXX' locked ...」エラーに精通している可能性があります。
この問題の回避策を備えた非常に有用な投稿を見つけました: 作業コピーXXXがロックされ、SVNでクリーンアップに失敗しました
回避策と同じくらい素晴らしいことですが、何度も何度もやるのは苦痛です。なぜこのエラーが発生し続けるのか、それを防ぐためにどのような手順を講じることができるのか誰にもわかりますか?
コンテキスト:SVNイベントのリッスンを伴うEclipseプラグインを作成しているため、このプラグインのテストでは、ワークスペースを常に開いたり閉じたりしています。通常、ワークスペースを開くたびに1つまたは2つのコミットを実行します。しばしばコミットが失敗し、「working copy locked」エラーが表示されます。このエラーが発生しないようにしたいので、アドバイスをいただければ幸いです。
ありがとう!
問題が解決しました。
注:上記の手順はEclipse(Indigoパッケージ)のみで機能します
通常、.lock
ファイルが作成され、このファイルの存在をチェックしてロック/ロック解除状態を決定します。これを削除すると.lock
ファイルのみ、問題はなくなります。
私は以前にSVNで多くの問題を抱えていましたが、間違いなく私が問題を引き起こしたことの1つは、Eclipseの外部でファイルを変更するか、手動でフォルダ(.svnフォルダを含む)を削除することです。
編集する また、SVN操作を中断しないように注意する必要がありますが、バグが発生し、.lock
ファイルは削除されないため、エラーになります。
コンソールの内容を正確にクリーンアップしてください。たとえば、サブフォルダー(パッケージ)がロックされている場合:
svn: E155004: Commit failed (details follow):
svn: E155004: Working copy 'C:\Users\laura\workspace\tparser\src\de\test\order' locked
svn: E155004: 'C:\Users\laura\workspace\tparser\src\de\test\order' is already locked.
クリーンアップC:/ Users/liparulol/workspace/tparser/src/de/mc/etn/parsers/order
次に、プロジェクト全体ではなく、指定したフォルダーをクリーンアップする必要があります。 Eclipseを使用している場合は、プロジェクトフォルダーではなくパッケージを右クリックして、クリーンアップを実行します。
さらに調査とテストを行った結果、この問題はプラグインのデバッグとブレークポイントの使用が原因であったようです。 SVN/Subclipseは、実行の途中でブレークポイントを作成することを好まなかったようです。その結果、このロックファイルが作成されていました。プラグインの実行を開始するとすぐに、この問題は消えました。
これは、プロジェクト内のフォルダーの1つで問題が発生した場合に発生します。ロックされた正確なフォルダーを見つけて、特定のフォルダーの下でsvn cleanup
を実行する必要があります。これは次のように解決できます。
svn commit
コマンドを実行して、どのフォルダーが間違っているかを調べます。svn cleanup
を実行します。その後、完了です。com.xxx.service.model
パッケージを使用しても同じ問題が発生しました。
修正するために、最初にモデルパッケージのコード変更のバックアップを作成しました。次に、モデルパッケージを削除し、リポジトリと同期しました。フォルダー/パッケージ全体が表示されます。その後、私のコードを更新しました。
最後に、古いコードコミットをSVNリポジトリに貼り付けます。正常に動作します。
以下は、ロックされた作業コピーのロックを解除する必要があります(svnクライアントバージョン1.6.11およびelipseバージョンでテスト済み:Mars.2リリース(4.5.2))
ステップ1:(作業コピーディレクトリに移動)$ cd working_copy_dir
ステップ2:(svn sqliteデータベースに接続)$ sqlite3 .svn/wc.db
ステップ3:(テーブルWC_LOCKからすべてのレコードを削除)sqlite> WC_LOCKから削除。
ステップ4:(sqlite 3データベースから切断する)sqlite> ctrl + d
ステップ5:(Eclipseから)作業コピーを右クリックし、[チーム]-> [更新/クリーンアップ]をクリックします
これは、別のSubversionプロジェクトからディレクトリをコピーしてコミットしようとしたときに起こりました。解決策は、コミットしたいディレクトリ内の.svnディレクターを削除することでした。
解決策:Step1:「.svn」隠しファイルの下にある「lock」ファイルを削除する必要があります。 Step2:「ロック」ファイルがない場合、「we.db」が表示されます。このデータベースを開き、次のテーブルからコンテンツのみを削除する必要があります– lock– wc_lockStep3:プロジェクトのクリーンアップStep4:今すぐコミットしてみてください。 Step5:完了。
このタイプの問題は、ファイルを削除/移動するときに発生する可能性があります-基本的に、ディレクトリ構造に変更を加えます。 Subversionは、ディレクトリ構造に加えられた変更ではなく、すでにSubversionに追加されたファイルに加えられた変更のみをチェックします。 OSのcopyなどのコマンドを使用する代わりに、svn copyなどを使用します。 http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html をご覧ください
さらに、変更をコミットすると、svnは最初に変更の「要約」をtodoリストに保存します。このtodoリストでsvn操作を実行すると、これらのsvnアクションの実行中に他の変更を防ぐためにファイルをロックします。クラッシュなどでsvnアクションが途中で中断された場合、svnがtodoリストのアクションを完了するまで、ファイルはロックされたままになります。これはsvn cleanupコマンドを使用して「再アクティブ化」できます。 http://svnbook.red-bean.com/en/1.7/svn.tour.cleanup.html をご覧ください