@kyanny's blog

My thoughts, my life. Views/opinions are my own.

svn switch にミスることが多くてうざい

svn: ローカルで変更されたディレクトリ 'lib/Hoge' は削除できません
svn: ローカルで修正されたファイルやバージョン管理下にないファイルを残しました

こんなことを言われて、スイッチの途中で止まってワーキングコピーがぶっ壊れることが最近多い。ちゃんと svn up してからスイッチしてるし、 svn st の結果も綺麗なものだから、ローカルで変更されたディレクトリなんてないはずなんだけどな。

こうなってしまうと、メタ情報が壊れるらしく、 svn info でみると lib/ は trunk を向いてるはずなのに、実際のファイルは branch のもので不整合がある、みたいになって、何のコマンドを打ってもエラーが出て何もできなくなる。

とはいえ全部削除して checkout しなおす以外の道もあって、 svn info の結果など信用せずに、 branch から trunk へスイッチするコマンドを、一階層下のサブディレクトリ全てに対して発行するとなおったりする。 svn st して S マークがついてるものをすべて、カレントディレクトリと同じ URL へ向けてやればいい。