Open1
TortoiseSVNでcommitに失敗してcleanupもできないときの対処法
あるプロジェクトのソース管理で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"