SVNのクリーンアップできない、で良くあること

クリーク・アンド・リバー社 COYOTE CG STUDIO テクニカルチームの戦国最強と思う武将は本多忠勝、戦国大好き人間の中林です。
さっそく、Mayaのネタが尽きたので(Tortoise)SVNの簡単なクリーンアップ(Clean Up)ネタです。

SVNのクリーンアップできない

ことの始まりはと言うのに回数も多いのですが、スタジオ内でファイル管理ソフトとしてTortoiseSVNを利用してます。そこでアーティストから最も多く相談されるのが「svn 更新」ができません、という内容です。
大抵はクリーンアップをすれば解決をするのですが……

たまにこんなエラーが発生します。クリーンアップが失敗してるのにクリーンアップをしろとはなかなか矛盾した内容ですね。
もちろん、簡単に解決できない問題もありますが、多くは知っていいれば凄く簡単に解決することができます
今回は結果は簡単だけど意外とハマった事例を紹介します。

原因➀ツールでファイルを開いている

意外と単純だけど多い原因です。僕も最初にこの洗礼を受けました。
ツールの設定次第ですが、大抵のツールはファイルを開いていると上書き禁止になってます。エクセルなどの厳しいツールになってくると、上書きどころか開くことにも制限かかるソフトもあります。
なので、クリーンアップをする時はなるべくツールを落としてからすることを推奨してます。
今でも難しく考えて調べていて、実はこれだったというオチはあります。

原因➁下階層でクリーンアップしている

こちらも見落としがちですがフォルダの下流だけをクリーンアップしてエラーが出続ける場合があります。上図だと下流_04フォルダだけを選択してクリーンアップする感じです。
クリーンアップは選択してなくても上階層の方から確認だけはしてるので、選択フォルダにたどり着く前にエラーが発生して止まっていることは多いです。
データが多いと時間はかかりますが、初心者はクリーンアップをなるべく上流のフォルダから実行した方が確実です。

原因➂競合データを消してしまう

皆さんが嫌いなあの憎たらしい黄色マークです。他の人との作業が被った時に競合(collision )ファイルとして、複数の謎ファイルと一緒にできてしまうあれです。
慣れている人には競合前のデータをバックアップしてくれているありがたいデータなんですが、知らない人には恐怖です。ここで、恐怖に負けて慌てて競合ファイルを消してしまうとアーティストが結構います。
そうすると確実ではないのですが、競合するファイルが無いとクリーンアップでエラーが発生することがあります。こうなるとTortoiseSVNだけでの解決は難しいです。
解決するにはコマンドプロンプトから該当のフォルダに移動してsvn cleanupを実行、するとログにエラーの原因のファイル名が表示されます。

このファイルのダミーファイルを作成してクリーンアップをすると解決をします。上図の状態だと指定アドレスに~.tgaファイルが無いのでダミーでも良いので同名のダミーファイルを用意します。
ダミーファイルは後で更新をして上書きをするので適当なテキストファイルを無理やり拡張子を変えてもかまいません。
因みに競合ファイルで自分の変更を反映させる必要が無い場合は消すのではなく、競合したファイルを右クリックして変更の取り消しをすることを推奨します。

9割以上が上記が原因

クリーンアップができない問題のほとんどがこちらで解決をしてます。むしろ、これ以外の問題は起きた記憶はありません。
まあ、あってもトラウマで記憶から消えてるかもしれません、否、トラウマだからこそ覚えてそうなのでやはり少ないです。

今回のブログで苦労したこと

実は今回のブログで最も苦労したことは、クリーンアップのエラーを発生させる方法が分からない!!
僕だけでなくテクニカルチーム全体でよく相談される案件なんだけど、いざブログを書くことになって本当に起きるのかを検証しようとすると、なかなか出てくれません。
意図的に起こせるのは➀だけなので、今回のブログを書いてる時に➂がギリギリでアーティストの席で発生してくれました。

Author: 中林 伸和