次の操作を行うと、このエラーが発生しますsvn update
。
作業コピー XXXXXXXXX がロックされています 「クリーンアップ」コマンドを実行してください
クリーンアップを実行すると、
クリーンアップで次のパスを処理できませんでした: XXXXXXXX
このループから抜け出すにはどうすればよいですか?
次の操作を行うと、このエラーが発生しますsvn update
。
作業コピー XXXXXXXXX がロックされています 「クリーンアップ」コマンドを実行してください
クリーンアップを実行すると、
クリーンアップで次のパスを処理できませんでした: XXXXXXXX
このループから抜け出すにはどうすればよいですか?
1つのアプローチは次のとおりです。
もう1つのオプションは、最上位のフォルダーを削除して、もう一度チェックアウトすることです。うまくいけば、それはそれにはなりません。
私にとっての秘訣はsvn cleanup
、問題が発生する前にずっと作業していたフォルダーではなく、作業コピーの先頭で実行することでした。
フォルダを見ると.svn
、その中に というファイルがありますlock
。そのファイルを削除すると、更新できるようになります。.svn
各サブディレクトリのディレクトリには、さらに多くのロック ファイルが存在する場合があります。それらも削除する必要があります。これは、コマンドラインから非常に簡単にバッチとして実行できます。
find . -name 'lock' -exec rm -v {} \;
フォルダー内のファイルを手動で編集していることに注意して.svn
ください。それらは理由があってそこに置かれています。その理由は間違いかもしれませんが、そうでない場合は、ローカル コピーが破損している可能性があります。
私の場合、WC_LOCKテーブルのSQLite「.svn\wc」ファイルロックレコードのレコードを手動で削除することで解決しました。
「WC」ファイルをSQLiteエディタで開いて実行してみました
delete from WC_LOCK
eakkasのコメントに従って、テーブルからもすべてのエントリを削除する必要がある場合がありますWORK_QUEUE
。
これまでで最も簡単な方法:
Clean up working copy status
、Break locks
、Fix time stamps
、Vacuum pristine copies
、 、Refresh shell overlays
を選択Include externals
あなたは仕事をうまくやり遂げました。
参考までにスクリーンショットを確認してください。
最初の一歩:
2 番目のステップ:
Break lock オプションを有効にします (クリーンアップ ポップアップ ウィンドウの 2 番目のチェック ボックス)。
これが大いに役立つことを願っています。
職場の同僚は常にこのメッセージを目にします。彼にとっては、 SVNから削除せずに、SVNバージョン管理下のディレクトリを削除し、バージョン管理下にない場所に同じ名前の新しいディレクトリを作成したためです。
これがあなたの問題なら...:
ディレクトリが置き換えられた方法/理由に応じて、さまざまな修正方法があります。
いずれにせよ、次のことを行う必要があります。
A)既存のディレクトリの名前を一時的な名前に変更します
B)SVNを元に戻して、ファイルシステムから削除されたディレクトリを回復しますが、SVNからは回復しません
そこから、あなたはどちらか
A)削除されたディレクトリに関連ファイルをコピーします
B)ディレクトリの内容に大幅な変更があった場合は、元のディレクトリでSVN削除を実行し、コミットして、新しいディレクトリの名前を目的の名前に戻します。その後、SVNを追加して、そのディレクトリをバージョン管理下に置きます。
これは私のために働いた。
クリーンアップ後、最新バージョンに更新できます。
私にとって、それは実際には亀のせいでした。Tortoise は「クリーンアップできない、クリーンアップを実行できない」と不平を言いましたが、コマンド ライン (svn cleanup) を実行すると、使用中のファイルを削除できないことが明確にわかりました。Visual Studio (ファイルを開いたままにしていた) を閉じると、クリーンアップは正常に機能しました。
他のプログラムも、この問題を引き起こしているリポジトリでファイルを開いたままにしておくことができます。別の例では、Excel で xls を開いたままにしておくことが原因でした。そのため、リポジトリ内の何かを使用している可能性があるすべてのプログラムを閉じたり、再起動してプログラムを強制的に終了させたり、クリーンアップを再試行したりすることをお勧めします。
外部フォルダーを既存のフォルダーにリンクしたくないため、この問題が発生しました。コピー先が既存の (バージョン管理されている、またはバージョン管理されていない) フォルダーである svn:externals プロパティ行を追加すると、SVN Woring Copy locked エラーが発生します。ここでクリーンアップを行うと、何も問題はありませんが、それでも更新がうまくいかないことがわかります。
解決策: 問題のあるフォルダーをリポジトリから削除し、svn:externals プロパティが設定されているルート フォルダーを更新します。これによりフォルダーが作成され、すべてが再び正常になります。
この問題が発生したのは、ファイルの svn:externals では宛先フォルダーをバージョン管理する必要があるためです。これが異なるリポジトリ間で機能しないことに気付いた後、外部ファイルから外部フォルダーにスワップし、この混乱に陥りました。
これを行う最も簡単な方法は、非表示のフォルダーを表示してから、.SVNフォルダーを開くことです。「lock」という名前のゼロKBファイルが表示されるはずです。これを削除すると、問題が修正されます。
SVN 1.7 を使用してまったく同じ問題に遭遇しましたが、上記の修正はどれも機能しませんでした。
何よりも、編集したすべてのコンテンツを必ずバックアップしてください。
数時間を費やした後 (ブランチのサイズが 6 GB を超えているため、すべてを再ダウンロードしませんでした)、ブランチの .svn フォルダーに「wc」という名前の db ファイルがあることがわかりました。
任意の db マネージャーを使用して db ファイルを開き (私は firefox の sqlite マネージャー プラグインを使用しました)、WC_LOCK テーブルに移動します。このテーブルには、取得したロックのエントリが含まれます。テーブルからレコードを削除すれば完了です:)
Windowsマシンを使用している場合は、ブラウザでリポジトリを表示すると、同じファイル名で大文字と小文字が異なる2つのファイルが表示される場合があります。Subversionは大文字と小文字を区別しますが、Windowsは大文字と小文字を区別しないため、Windowsが同じファイルをプルダウンしていると判断し、Subversionがそうではない場合に、ロックを取得できます。リポジトリー上の重複ファイル名を削除して、再試行してください。
新しいフォルダーを作成し、プロジェクトをチェックアウトし、更新されたファイルを新しいフォルダーにコピーするだけで完了しました。
フレッシュチェックアウトで修正されました。
この問題が発生した場合、問題のパスで cleanup コマンドを直接実行すると、通常はうまくいくようです。次に、作業ルートから再度クリーンアップを実行すると、他のディレクトリについてエラーが表示されます。文句を言わなくなるまで繰り返します。
TortoiseSVNを使用していて、アップグレードしたばかりですか?1.4から1.5に移行して再起動しないときに、以前にその問題が発生しました。(再起動してみてください)。
再起動が必要な理由は、キャッシュファイルがすべてファンキーになるためです。
それ以外の場合は、先に進むには、その作業コピーを新しいフォルダーにエクスポートし(.svn非表示フォルダーをコピーしないでください)、プロジェクトを再チェックアウトし、すべてのコードを元に戻してから、コミットを続行します。
Mac OS のバージョン: アクション -> 作業コピーのロックをクリーンアップ...
.svn フォルダを削除してから、親ディレクトリでクリーンアップを実行してください。完璧に動作します!!
バージョン管理されたフォルダーの下にフォルダーをエクスポートしたため、同じ問題が発生しました。TortoiseSVNからフォルダーを削除してから、ファイルシステムからフォルダーを削除する必要がありました(TortoiseSVNはバージョン管理されていないサブフォルダーが好きではありません...なぜですか?)
Linuxを使用している場合は、次のことを試してください。
find "/the/path/to/your/directory" -name .svn -type d | xargs chmod 0777 -R
次にcleanup
、そのディレクトリでコマンドを実行してから、更新を試みます。
検索を開始....ロック...リストされているすべてのファイルを選択し、削除..修正済み
「クリーンアップ」が機能するというこの問題がありましたが、「更新」は失敗し続けます。うまくいった解決策は、TortoiseSVN の削除ではなく、Windows エクスプローラーを介して問題のフォルダーを削除することでした (削除をリポジトリにコミットするものとしてマークし、リポジトリからフォルダーを本質的に「更新」するために「チェックアウト」を行いました。
O/S 削除と SVN 削除の違いに関する詳細情報: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-rename.html
特に:
TortoiseSVN → ファイルを削除すると、そのファイルは作業コピーからすぐに削除され、次のコミット時にリポジトリで削除のマークが付けられます。
と:
ファイルが TortoiseSVN コンテキスト メニューを使用する代わりにエクスプローラーから削除された場合、コミット ダイアログにそれらのファイルが表示され、コミット前にバージョン管理からも削除できます。ただし、作業コピーを更新すると、Subversion は不足しているファイルを見つけて、リポジトリの最新バージョンに置き換えます。
ソリューションを削除しないでください。
.svn フォルダーには、lock というファイルがあり、長さは 0 バイトです
ソリューション内のすべての .svn フォルダーからこれらのファイルをすべて削除すると、機能します。
私の場合はうまくいきました
次のようにする必要があります。
svn ステータス | grep ".L" | sed 's/.* (.*)$/\1/' | awk '{印刷長($1),$1}' | 並べ替え -nr | awk '{print "pushd " $2 "; svn cleanup ; popd"}' | し
問題を解決するために次のことを行いました。
これは TortoiseSVN の下にあり、エラーは新しいプロジェクトの下に作成した新しいディレクトリに関連していました。このプロジェクトを作成したばかりなので、このディレクトリが以前に存在したことはありませんでした。リポジトリ ブラウザーを調べたところ、新しいフォルダーは確かに既にリポジトリにありましたが、TortoiseSVN はそれをコミット済みとして表示しませんでした。
それを回避するために、とにかくフォルダーを作成したので、リポジトリで削除してからコミットしました。うまくいきました。
これを Visual Studio の外で行ったので、Visual Studio を再起動して、すべてを再度把握する必要がありました。
私にとっては、問題は完全にディスク ドライブ (私の場合は 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
ソリューション エクスプローラーで、プロジェクトを右クリックし、最初のサブメニューで subversion をクリックし、クリーンアップを選択します。それは私のためにしたように、問題を解決します。それがうまくいくことを願っています。
クリーンアップを行うには
.svn フォルダーを削除します。
ルート フォルダーで svncheckout を実行します。
クリーンアップ操作を実行してみてください。
これで私の問題は解決しました。
ファイルをインプレースでバージョン管理解除し、同じ場所に新たにチェックアウトすることで、この問題は解決しました。
TortoiseSVN でインプレース バージョン管理を解除するには、作業コピーのルート フォルダをファイル リストからディレクトリ ツリーのそれ自体に右ドラッグし、ポップアップ メニューから [SVN バージョン管理された項目をここにエクスポート] を選択します。TortoiseSVN は宛先がソースと同じであることを認識し、作業コピーのバージョンを解除することを提案します。
バージョン管理を解除した後、同じフォルダーに新たにチェックアウトします (このフォルダーには、バージョン管理されていないすべてのファイルのコピーが含まれています)。TortoiseSVN は、既存のフォルダーにチェックアウトしていることを警告しますが、先に進むことができます。
この後、クリーンアップ、更新、およびその他の操作は問題なく機能しました。上記の両方の手順でローカルの変更が保持されるため、情報が失われることはありません (ただし、作業コピーをバックアップする前にバックアップすることをお勧めします)。
1 つの警告: 作業コピーに混合バージョンまたはコミットされていないプロパティの変更が含まれている場合、その情報は失われます。私にとって、これはよくあることではなく、破損した作業コピーまたはコミットされていないプロパティの変更を失うという選択肢があるため、後者を選択する傾向があります。
SVN は通常、実際のファイルがリポジトリから取得される前に、フォルダー内のファイルの内部構造 (.svn/prop-base) を更新します。ファイルがフェッチされると、これはクリアされます。「更新」が失敗したか、更新の進行中に途中でキャンセルされたために、エラーがスローされることがよくあります。
これで更新が機能するはずです。
今日、私は上記の問題を経験しました
svn: 'svn cleanup' を実行してロックを削除します (詳細については 'svn help cleanup' と入力してください)
そして、これが私の解決策です。
svn cleanup <Dir path of my SVN project code>
例:
svn cleanup /Users/Ramdhan/SVN_Repo/ProjectName
これが役立つことを願っています。
私はこれが本当に古いスレッドであることを知っていますが、私はそれを維持します:
これを修正する最も簡単で安全な方法は、非表示の「.svn」フォルダを削除して、すべてをもう一度チェックアウトすることです。
ヘッド リビジョンを再度チェックアウトするときに、svn のねじ込みがローカルの変更 (「競合」としてマーク) を保持する必要がある場合のほとんどの問題を修正します。
update
回答で見たことがないこの問題の理由の 1 つはcheckout
、たとえば$sudo
.
この問題を解決するには、クリーンアップだけでは不十分な場合があります。
TortoiseSVN v1.7.2 以降を使用している場合は、ロックされたファイルの親ディレクトリを右クリックし、メニューから TortoiseSVN -> Repo Browser を選択します。Repro Browser GUI で、ロックされているファイルを右クリックすると、ロックを解除するオプションが表示されます。
最初に多くの解決策を試してから、問題が発生したフォルダーを削除しました。
そして、SVN Updateを実行しました。
それは私のために働いた。
お勧めしませんが、これ以外は何も機能しませんでした。:(
私も同じ問題を抱えていました。最新版では修正されているようです。Tortoise SVN
最新バージョン (1.7.11) に更新したところ、問題なく動作しclean up
ました。
ここから最新バージョンをダウンロードできます:ダウンロード tortoise svn。
ディレクトリのアクセス許可を更新する (書き込みアクセスを許可する) と、問題も解決します。
chmod +w <dir_name>
ルートディレクトリにファイルがあり、それがめちゃくちゃでした。(ロック ファイルがない、svn のクリーンアップに失敗したなど) 私のチェックアウト全体は 2GB を超えており、ネットワーク速度が遅いため、すべてをもう一度チェックアウトすることは私にとって良い選択肢ではありませんでした。
私のために働いたもの:
私にとっては正常に戻ったようです。
@チャックの解決策は私にとって実用的ではありませんでした。初めて問題が発生したときは、うまくいきましたが、多くの余分な作業も必要でした。2 番目のケースでは、ネットワーク外でノートブックを使用しているときに、ファイルの負荷を変更しました。ファイルが変更された後、自分がフォルダーごとに移動するのを見ることができませんでした。カメに希望を持って働いていました。方法を見る:
以前の環境:
手順:
手順 :
svn フォルダーからすべての編集ファイルを閉じます
svn ディレクトリのフォルダーまたはファイルを使用している Eclipse またはエディターを閉じます。
svn チェックアウト フォルダを右クリックし、ロックの解除をクリックします。
svn チェックアウト フォルダを右クリックし、[クリーン] をクリックします。
SVN は、SVN コミットおよび更新操作の準備ができています。
乾杯 :)
Spotlight は、ロック ファイルを再帰的に見つけるという点で、いつものゴミの自己です。
Mac App Store での EasyFind の動作
http://itunes.apple.com/gb/app/easyfind/id411673888?mt=12
「ロック」で検索
全選択・削除
私はそれがあなたのためにうまく働いていると確信しています
最上位の SVN フォルダーに移動します。
フォルダー(svnファイルがある)を右クリック-> TortoiseSVN->クリーンアップ
これはきっとあなたの問題を解決します。