SVN でロックしたまま削除されたファイルのロックを解除する方法
- 2017年05月30日
- Subversion
- SVN, TortoiseSVN
SVN でロックしたままのファイルをリネームすると、ロック状態が残ってしまいます。TortoiseSVN などでは通常はわかりませんが、同名のファイルをコミットしようとするとエラーが出ます。
1 2 3 4 5 |
コミットに失敗しました (詳しい理由は以下のとおりです): locked in another working copy no lock token available |

過去にロックしたまま削除されたファイルと同名のファイルを追加しようとすると失敗する。
ここで、ローカル環境でいくらクリーンアップを実行しても解決しません。サーバ側でロックの管理ファイルが残っているのが原因だからです。
このような状態になると、TourtoiseSVN からでは手も足も出ないので、サーバ側に ssh などでログインして、SVN のデータファイルを直接触ります。
Subversion 1.7 であれば、以下の場所にロックのファイルがあります。
1 |
(リポジトリのパス)/db/locks/***/ |
このディレクトリ直下をファイル名で grep して該当ファイルを削除(SVNディレクトリ外へ移動)すればロックの情報が消えます。
1 2 3 4 5 |
$ grep authorization.php -R locks/ locks/aec/aec20cf9132cc5abc156e46dee9d04bf:/trunk/hoge/foo/bar/authorization.php $ mv /aec/aec20cf9132cc5abc156e46dee9d04bf ~/workdir/ |
もし似たような状況でお困りであれば試してください。