Open1
TortoiseSVNでcommitに失敗してcleanupもできないときの対処法
![モチノエ研究所](https://res.cloudinary.com/zenn/image/fetch/s--vodBYy7S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/ec96cd5fbf.jpeg)
あるプロジェクトのソース管理でTortoiseSVNを使用しているのですが、コミットが失敗しクリーンアップも動作しないという場面に出会いました。
調べてみると、どうやら作業コピーのロック状態が残ってしまうのが原因だと判明しました。
データベースの値を直接書き換えてロックを外すことで対応します。
修正方法
SVNのメタデータである.svn/wc.dbを直接編集します。
こちらはsqlite形式で書かれているので、sqliteを使用します。
- sqlite3をダウンロードし、.svn/wc.dbの場所に移す。
- コンソールを起動し、該当箇所に移動します。
- sqlite3 wc.db .tablesを実行します。 WC_LOCK、WORK_QUEUEが表示されることを確認します。
- sqlite3 wc.db --header "select * from WORK_QUEUE"
- sqlite3 wc.db --header "select * from WC_LOCK"
- 何かしらのデータが残ったままだった場合、テーブルごと消します。
- sqlite3 wc.db "delete from WORK_QUEUE"
- sqlite3 wc.db "delete from WC_LOCK"