web-dev-qa-db-ja.com

作業コピーXXXがロックされ、クリーンアップがSVNで失敗しました

svn updateを実行すると、このエラーが発生します。

作業コピーXXXXXXXXはロックされています "Cleanup"コマンドを実行してください

クリーンアップを実行すると、

クリーンアップは次のパスを処理できませんでした:XXXXXXXX

このループから抜け出すにはどうすればよいですか。

576
Dan

1つの方法は次のとおりです。

  1. 編集したアイテムを別の場所にコピーします。
  2. 問題のあるパスを含むフォルダを削除します。
  3. Subversionを使って格納フォルダを更新します。
  4. ファイルを元に戻すか、必要に応じて変更をマージします。
  5. コミット

別のオプションは最上位のフォルダを削除して、もう一度チェックアウトすることです。うまくいけばそれはそれに来ない。

515
Chuck

私にとっては、問題が発生するまでずっと作業していたフォルダではなく、作業コピーの一番上でsvn cleanupを実行するのがコツです。

469
BradS

あなたの.svnフォルダを見てください、その中にlockと呼ばれるファイルがあるでしょう。そのファイルを削除すると更新することができます。各サブディレクトリの.svnディレクトリには、もっと多くのロックファイルがあるかもしれません。彼らも削除する必要があります。これは、コマンドラインから非常に簡単にバッチとして実行できます。

find . -name 'lock' -exec rm -v {} \;

.svnフォルダー内のファイルを手動で編集していることに注意してください。彼らは理由のためにそこに置かれました。その理由は間違いかもしれませんが、そうでなければあなたはあなたのローカルコピーを損傷する可能性があります。

SOURCE: http://www.svnforum.org/2017/viewtopic.php?p = 6068

208
Intu

私の場合は、WC_LOCKテーブルのSQLite ".svn\wc"ファイルロックレコードのレコードを手動で削除して解決しました。

SQLiteエディタで "WC"ファイルを開いて実行した

delete from WC_LOCK

screenshot showing all entries purged from WC_LOCK

eakkas のコメントに従って、WORK_QUEUEテーブルからすべてのエントリを削除する必要があるかもしれません。

101
Ivelin Nikolaev

これまでで最も簡単な方法:

  1. 親ディレクトリ(フォルダ) of プロジェクトに移動します。
  2. プレス右クリック
  3. TortoiseSVNを押してからクリーンアップ...を押します
  4. クリーンアップダイアログが自動的に表示されます
  5. Clean up working copy statusBreak locksFix time stampsVacuum pristine copiesRefresh Shell overlaysInclude externalsを選択します
  6. Pres OK

あなたはあなたの仕事を成功させました。

参考のためにスクリーンショットを確認してください。

最初の一歩:

enter image description here

2番目のステップ: Breakロックオプションを有効にする(クリーンアップポップアップウィンドウの2番目のチェックボックス) enter image description here

これが大いに役立つことを願っています。

87
Hiren Patel

職場の同僚は常にこのメッセージを見ています。彼にとっては、SVNバージョン管理下のディレクトリを削除したためです。without SVNから削除し、バージョン管理下にない場所に新しいディレクトリを作成しました。同じ名前。

これがあなたの問題なら...:

ディレクトリをどのように/なぜ置き換えたかに応じて、さまざまな修正方法があります。

いずれにせよ、あなたはおそらく必要になるでしょう:

A)既存のディレクトリの名前を一時的な名前に変更します

B)SVNからではなく、ファイルシステムから削除されたディレクトリを回復するためにSVNを元に戻します

そこから、あなたは

A)関連ファイルを削除されたディレクトリにコピーします

B)ディレクトリの内容が大幅に変更された場合は、元のディレクトリでSVNを削除し、コミットし、新しいディレクトリの名前を目的の名前に戻し、その後SVNを追加してget thatを追加します1つはバージョン管理下にあります。

48
Matt

私にとっては上記の解決策はどれもうまくいきませんでした。ロックを解除して解決策を見つけました。 svn cleanupを実行したとき、「作業コピーのステータスをクリーンアップする」とともに「Break Locks」を選択しました。

enter image description here

31
LoveForDroid

これは私のために働いた。

  1. ルートフォルダに行きます。
  2. 右クリックして整理
  3. 利用可能なすべてのオプションを確認してください
  4. OKを押す

クリーンアップした後、それはあなたが最新バージョンにアップデートすることを可能にします。

22
Lance

私にとっては、それは実際には亀のせいなのです。 Tortoiseは「クリーンアップできません。クリーンアップを実行できません」と不満を述べましたが、コマンドライン(svn cleanup)を実行したとき、使用中のファイルを削除できないと明らかに言われました。ファイルを開いたままにしていたVisual Studioを閉じると、クリーンアップは正常に機能しました。

他のプログラムもレポジトリ内でファイルを開いたままにしてこの問題を引き起こす可能性があります。 xlsを開いたままにしているExcelは、別の例では犯人でした。そのため、リポジトリで何かを使用している可能性があるすべてのプログラムを閉じるか、強制的にプログラムを閉じてから再度クリーンアップを試みます。

11
Mark Sowul

外部フォルダを既存のフォルダにリンクしたくないため、この問題が発生しました。移動先が既存の(バージョン管理されている、またはバージョン管理されていない)フォルダであるsvn:externalsプロパティ行を追加すると、SVN Woring Copy lockedエラーが発生します。ここでクリーンアップを行うと、覆い焼きは問題ないが、それでも更新はうまくいかないことがわかります。

解決策:問題のあるフォルダをリポジトリから削除し、svn:externalsプロパティが設定されているルートフォルダを更新します。これでフォルダが作成され、すべてうまくいきます。

Svn:externals for filesはインストール先フォルダをバージョン管理する必要があるため、この問題は私には起こりました。これが異なるリポジトリ間ではうまくいかないことに気付いた後、私は外部ファイルから外部フォルダにスワップしてこの混乱に陥りました。

7
Oliver Zendel

これを行う最も簡単な方法は、隠しフォルダを表示してから.SVNフォルダを開くことです。 "lock"という名前のゼロKBファイルを削除すると問題が解決します。

6
fawefawefa

私はSVN 1.7を使用して全く同じ問題に遭遇しましたが、上記の修正はどれもうまくいきませんでした。

まず第一に、あなたがすべてのあなたの編集された内容をバックアップすることを確認してください。

数時間を費やした後(私のブランチのサイズが6 GBを超えているのですべてを再ダウンロードしなかった)、私はあなたのブランチの.svnフォルダーに "wc"と呼ばれるdbファイルがあることを知りました。

任意のDBマネージャ(私はFirefoxのsqliteマネージャプラグインを使用)を使用してDBファイルを開き、WC_LOCKテーブルに移動します。このテーブルは獲得されたロックのためのエントリーを持つでしょう。テーブルからレコードを削除すれば完了です。

5
Rohan

新しいフォルダを作成し、プロジェクトをチェックアウトし、更新されたファイルを新しいフォルダにコピーするだけで完了しました。

それは新鮮なチェックアウトで修正されました。

3
Don

Windowsマシンを使用している場合は、ブラウザでリポジトリを表示すると、ファイル名が同じで大文字と小文字が異なる2つのファイルが表示されることがあります。 Subversionでは大文字と小文字が区別され、Windowsではそうではないので、Windowsが同じファイルをプルダウンしていると思っていてSubversionがそうではないと考えると、ロックを受けることができます。リポジトリー上の重複ファイル名を削除してやり直してください。

3
toxaq

私はこの問題を抱えているとき、私は問題のパス上で直接cleanupコマンドを実行することが一般的にうまくいくように見えます。それから私は再び作業ルートからクリーンアップを実行します、そしてそれは他のディレクトリについて文句を言うでしょう。それが文句を言わなくなるまで繰り返します。

3
stephen

Mac OSの下のバージョンで:アクション - >クリーンアップ作業コピーのロック...

2
HotJard

.svnフォルダを削除してから、親ディレクトリをクリーンアップします。完璧に動作します!

2
Ben

私はしばしばそのような問題を抱えています。クリーンアップの問題を引き起こす私のパターン。

  1. 画像ファイルをビューアーで開きます。
  2. 画像ファイル/フォルダを削除します。
  3. コミット/更新しようとしています

削除されたファイルが開かれているところでImage Viewerを閉じると問題は解決します。他のソフトウェアが同じ方法でクリーンアップをブロックする可能性があります。

一般に。そのような場合には、コンピュータを再起動すると効果があると思います。

2
Dmitry Borisov

TortoiseSVNを使っていてアップグレードしたばかりですか?私は1.4から1.5に移動して再起動していないときに以前問題がありました。 (再起動してみてください)。

あなたが再起動する必要がある理由は、キャッシュファイルがすべてファンキーになるためです。

それ以外の場合は、先に進むために、その作業コピーを新しいフォルダにエクスポートし(.svn隠しフォルダをコピーしないでください)、プロジェクトを再度チェックアウトし、すべてのコードを元に戻してからコミットを続行します。

2
Adam

ファイルのインプレースバージョン管理、および同じ場所への新しいチェックアウトによって、この問題は解決しました。

TortoiseSVNでインプレースバージョン管理を解除するには、作業コピーのルートフォルダをファイルリストからディレクトリツリー内の自分自身に右ドラッグし、ポップアップメニューから[SVNバージョン管理下の項目をここにエクスポート]を選択します。 TortoiseSVNは、コピー先がコピー元と同じであることに気付き、作業コピーを元に戻すことを提案します。

バージョン管理を解除した後、同じフォルダ(現在はすべてのファイルのバージョン管理外のコピーが含まれています)に新しいチェックアウトを行います。 TortoiseSVNはあなたが既存のフォルダにチェックアウトしようとしていることを警告しますが、あなたは先に進むことができます。

その後、クリーンアップ、更新、その他の操作は問題なく行われました。上記のステップはどちらもローカルの変更を保存するので、情報が失われることはありません(ただし、作業コピーをバックアップする前にバックアップすることをお勧めします)。

1つの警告:作業コピーに複数のバージョンが混在していたり​​、コミットされていないプロパティの変更が含まれていると、その情報は失われます。私にとっては、これは一般的なことではなく、破損した作業コピーを選択するか、コミットされていないプロパティの変更を失うことを考えると、後者を選択する傾向があります。

1
Magnus

SVNは通常、実際のファイルがリポジトリから取得される前に、フォルダ内のファイルの内部構造(.svn/prop-base)を更新します。ファイルが取得されると、これは消去されます。更新の進行中に「更新」が失敗したか、途中でキャンセルされたために、エラーが発生することがよくあります。

  1. ファイルが.svn/prop-baseディレクトリの下にリストされていることを確認します。
  2. フォルダの下にないすべてのファイルを削除します
  3. 掃除
  4. 更新

これでアップデートはうまくいくはずです。

1
lud0h

クリーンアップする

  1. クリーンアップ操作を実行してください。

  2. .

  3. Try performing the clean up operation.

This got my issue resolved.

1
Jayaguru

私は「クリーンアップ」がうまくいったところでこの問題を抱えていましたが、「アップデート」は失敗し続けるでしょう。 TortoiseSVNの削除(削除をリポジトリにコミットするものとしてマークする)ではなく、エクスプローラで問題のフォルダを削除することで解決しました。その後、チェックアウトを実行して、基本的にリポジトリからフォルダを「更新」しました。

O/S削除とSVN削除の違いの詳細については、次のURLをご覧ください。 http://tortoisesvn.net/docs/release/TortoiseSVN_jp/tsvn-dug-rename.html

特に:

TortoiseSVN→ファイルを削除すると、そのファイルはすぐに作業コピーから削除され、次のコミット時にリポジトリで削除対象としてマークされます。

そして:

TortoiseSVNのコンテキストメニューを使用せずにエクスプローラでファイルを削除すると、コミットダイアログにそれらのファイルが表示され、コミット前でもバージョン管理からそれらを削除できます。ただし、作業コピーを更新すると、Subversionは見つからないファイルを見つけて、それをリポジトリの最新バージョンに置き換えます。

1
Xonatron

ソリューションエクスプローラーで、プロジェクトを右クリックし、開くサブメニューでSubversionをクリックして、クリーンアップを選択します。それは私のためにやったように、それは問題を解決します。それがうまくいくことを願っています。

1
Nadeem Jamali

Linuxを使用している場合は、これを試してください。

find "/the/path/to/your/directory" -name .svn -type d | xargs chmod 0777 -R

その後、そのディレクトリでcleanupコマンドを実行してから、更新を試みます。

1

私は私の問題を解決するために次のようにしました:

  1. フォルダ名の前に「_」を付けて、問題のフォルダの名前を変更しました。
  2. 親フォルダの「クリーンアップ」を行いました。
  3. 問題のフォルダの名前を元の名前に戻しました。
  4. コミットしました。
1
user1319487

私にとって、問題は私がそれが再び働いて始めたいくつかのフォルダーを削除したとき、完全なフルディスクドライブ(私の場合はlinux inode)にありました。

エラーは次のとおりです(svnアクション)。

$ svn cleanup
svn: E155004: Run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
svn: E155004: Working copy locked; try running 'svn cleanup' on the root of the working copy ('/my/directory') instead.
svn: E155004: Working copy '/my/directory' locked
svn: E200030: sqlite[S14]: unable to open database file
svn: E200030: Additional errors:
svn: E200030: sqlite[S14]: unable to open database file
1
dreamzor

ソリューションを削除しないでください。

.svnフォルダにはlockという名前のファイルがあり、長さは0バイトです。

あなたはあなたのソリューション内のすべての.svnフォルダからこれらすべてのファイルを削除することができ、それは動作します

私の場合はうまくいきました

1
Para

私はそれをめちゃくちゃにしていた私のルートディレクトリにファイルがありました。 (ロックファイルがない、svn cleanupが失敗した、など)私の全体のチェックアウトは遅いネットワーク速度で> 2GBなので、もう一度すべてをチェックアウトすることは私にとって すばらしい オプションではありませんでした。

私にとってうまくいったこと:

  1. めちゃくちゃになった作業コピーの変更を元に戻しました(#1)。
  2. --depth emptyを指定して、レポ(#2)の別のコピーをチェックアウトしました。
  3. 新しい作業コピーにファイルを追加してコミットしました(#2)。
  4. オリジナルの作業コピー(#1)で更新されました。

私にとっては正常に戻ったようです。

0
Nathan McDaniel

私はTortoiseSVNの下でこれを持っていました、そして、エラーは私が新​​しいプロジェクトの下で作成した新しいディレクトリに関連していました。このプロジェクトを作成したばかりなので、このディレクトリが以前に存在していた方法はありませんでした。私はリポジトリブラウザを見ました、そして、新しいフォルダは確かにすでにリポジトリの中にありました、しかしTortoiseSVNはそれをコミットされたとして示しませんでした。

それを回避するために、とにかくフォルダを作成したばかりなので、リポジトリから削除してからコミットしました。それはうまくいった。

これをVisual Studioの外部で行ったので、その後すべてを理解するためにVisual Studioを再起動する必要がありました。

0
Scott Whitlock

私はこれが本当に古いスレッドであることを知っています、しかし私はそれを維持します:

これを修正する最も簡単で安全な方法はあなたの隠れた ".svn"フォルダを削除してそしてもう一度すべてをチェックすることです。

先頭のリビジョンをチェックアウトしたときにsvn screwがローカルの変更( "conflicted"とマークされている)を保持する必要がある場合のほとんどの問題を修正します。

0
Izzy

ディレクトリのアクセス許可を更新する(書き込みアクセスを許可する)と、同様に問題が解決します。

chmod +w <dir_name>
0
Karthik

私が答えで見たことがないこの問題の1つの理由はupdatecheckoutが例えば$Sudoのように他のユーザ/パーミッションで行われたかもしれないということです。

私は同じ問題を抱えていました。それは最新バージョンで修正されたようです。私はTortoise SVNを最新版(1.7.11)に更新し、clean upはうまくいっています。

最新版はこちらからダウンロードできます: tortoise svn をダウンロードしてください。

0
algreat

@チャックの解決策は私にとって実用的ではありませんでした。私が最初に問題を抱えたとき、それはうまくいったが多くの余分な仕事も与えた。 2番目のケースでは、ネットワーク外でノートブックを使用している間にファイルのロードを変更しました。ファイルが変更された後、自分自身がフォルダごとに移動するのを確認できませんでした。カメを希望して働いていた。方法を参照してください。

環境だった:

  1. Visual Studio 2008
  2. Ankhsvn

手順:

  1. 最初に私はコミットすることができませんでした、それは私が片付ける必要があると言った
  2. 第二に、私はクリーンアップすることができませんでした、svnからフォルダがありました - "bin"
  3. 私はTortoiseの最新バージョンをダウンロードしてみましたが、ダムフォルダのために動作しません。
  4. そのフォルダの名前を変更して、今度はローカルリポジトリを最新バージョンで更新できます。
  5. いくつかのファイルが入ってきました。
  6. コミットして働いた。
0
Eduardo Xavier

ステップ:

  1. Svnフォルダから編集中のファイルをすべて閉じます

  2. Eclipseまたはsvnディレクトリのファイルまたはフォルダを使用しているエディタを閉じます。

  3. Svn check out folderを右クリックしてrelease lockをクリックしてください。

  4. Svn check out folderを右クリックして、cleanをクリックしてください。

  5. あなたのSVNはSVNコミットと更新操作の準備ができています。

歓声:)

0
Vinayak

検索開始...ロック...表示されているファイルをすべて選択して削除します。

0
Ryan

この問題を解決するには、クリーンアップだけでは不十分であることは確かです。

TortoiseSVN v1.7.2以降を使用している場合は、ロックされたファイルの親ディレクトリを右クリックしてメニューからTortoiseSVN - >リポジトリブラウザを選択します。 Repro Browser GUIで、ロックされているファイルを右クリックすると、ロックを解除するオプションが表示されます。

0
Brian Ogden

次のようにしてください。

svn status | grep "。L" | sed 's /.*(。*)$/\ 1 /' | awk '{プリント長($ 1)、$ 1}' | sort -nr | awk '{print "pushd" $ 2 "; svn cleanup; popd"}' | sh

0
bugfeeder

Spotlightは、ロックファイルを再帰的に見つけるのが一般的なゴミです。

Mac App StoreでEasyFindが機能する

http://iTunes.Apple.com/gb/app/easyfind/id411673888?mt=12

'lock'を検索

すべて選択/削除

0
brian.clear