このブログを検索

2017/09/12

TortoiseSVN クリーンアップエラー時の対応

TortoiseSVNで更新途中に接続が切れてしまい、再度更新を行なうと、「すでにロックがかかっているから、クリーンナップしろ」と警告が表示されるようになった。
しかもクリーンナップしても正常に完了しないし、ロックも掛けていない。
以前は、 .svn/wc.db の work_queue テーブルを削除すると改善されたので、同じ対応をしてみたが解決せず。

でも、sqlite で他のデータテーブルに何かあるかもと、一つ一つ見たら wc_lock に下記、データが入っていた。
wc_id = 1
local_dir_relpath =
locked_levels = -1
wc_lock を削除すれば、いけるのではと思い、調べたら結構この対応方法がヒットした。
皆、同じ事で悩んでいたのだな。

以下、手順

---

1.sqlite3をダウンロードして解凍
http://www.sqlite.org/2015/sqlite-shell-win32-x86-3081002.zip

2.解凍したフォルダからsqlite3.exeをクリーンアップエラーが発生しているフォルダ内の「.svn」フォルダ内へ移動する

3.コマンドプロンプトを起動します
 3-1. 以下のコマンドを実行して、sqlite3.exeがあるフォルダに移動する

  例:cd /d C:\warkspace\path\.svn

 3-2. 以下のコマンドを実行して、データベース内にクリーンアップエラーが登録されているか確認する

  sqlite3.exe wc.db "select * from work_queue"
  sqlite3.exe wc.db "select * from wc_lock"
  ※ このコマンドを実行しても何を表示されない場合は、ここで処理を終了してください。

 3-3. 上記コマンドで何か表示された場合は、以下のコマンドを実行してください

  sqlite3.exe wc.db "delete from work_queue"
  sqlite3.exe wc.db "delete from wc_lock"
  ※ 上記コマンドでクリーンアップエラーの登録を削除します。

4. ダウンロードした、sqlite3.exeを削除します

以上で復旧処理は終了です

・参考サイト
Svn error “Previous operation has not finished”
http://stackoverflow.com/questions/22715303/svn-error-previous-operation-has-not-finished
[Windows][Subversion]svn commitに失敗してcleanupもできない
http://d.hatena.ne.jp/const/20150628/p1

2017/09/08

backburnerコマンド再び

久しぶりにcmdjobを使用したのでメモ
cmdjob -jobName:"<job title>" -manager:<manager> -servers:<server[,server1,..]> -priority:<num> -numTasks:<num> "<batch file path>"

例.1:ネットワークドライブを切り換える
@echo off
:: 環境が日本語なので英語表記にする
chcp 437
:: 切り換え前
dir x:
net use <drive letter>: /delete /Y
net use <drive letter>: \\server\share\directory [/user:domain\user]
:: 切り換え後
dir x:
以前書いたもの:backburner cmdjob でのネットワークドライブの変更

例.2:Softimageのワークスペース設定する
@echo off
chcp 437
"C:\Program Files\Autodesk\Softimage 2015\Application\bin\XSIBatch.bat" -w "<path>"