なっく日報

技術やら生活やらのメモ

SVNの.svnディレクトリを一発で消す

2016年にSVN!?

しかも、Subversion 1.7より前の話!?
(1.7以降はルートにのみ.svnディレクトリがあるので今回みたいなことは起きない)

というのはさておき、困っていたデザイナーさんがいたので救いました
(あと、特に目新しい技術ネタもなかったので。。)

現象

他のディレクトリをまるっとコピーしたことで余計な.svnディレクトリが付いてきて、新しく作ったはずのディレクトリがコミットができない。

A/.svn
A/dir1
A/dir1/.svn
A/dir1/file1
A/dir1/file2

↑みたいなAディレクトリをBディレクトリとしてコピーしたら、.svnまでコピーしちゃったという感じ。

対応

一緒にコピーしてしまった.svnディレクトリだけを消してやると。

ターミナルでサクッと。

find . -type d -name '.svn' | xargs rm -r

本当は

find . -type d -name '.svn' -print0 | xargs -0 rm -r

とやったほうが安全だけど今回は端折りました。

上記のfindとxargsのコマンドの各オプションの意味は↓の記事が解説がしっかりしているのでオススメです。

findとxargsの基本的な使い方 -- ぺけみさお