svnで結果をたくさん入れたかった

Ubuntu Serverのアップグレードを行ったんだけど、apacheのconfファイルが色々と変わってて、それに伴って/etc配下をsvnに入れてた分の更新作業を行った。

Ubuntu Serverは12.04から14.04にアップグレードしたんだけれど、一つ前の13.10からapacheのconfのルールなどがちょくちょくかわったみたいで更新作業が結構発生した。

また標準で(?)くっついてくるモジュールが減ったらしく、前のバージョンでは存在したmodsのconfとloadファイルが無くなっていた。

自分は利用するconfファイルをすべてsvn管理下においているんだけど、アップグレードでaptによって削除されてしまったファイルがいくつか。

shell> cd /etc/apache2/
shell> svn st
...(前略)...
? mods-available/authn_core.load
! mods-available/authn_default.load
? mods-available/authn_socache.load
? mods-available/authz_core.load
? mods-available/authz_dbd.load
! mods-available/authz_default.load
? mods-available/buffer.load
? mods-available/cache_disk.conf
? mods-available/cache_disk.load
? mods-available/cache_socache.load
! mods-available/cern_meta.load
? mods-available/data.load
? mods-available/dialup.load
...(後略)....

svn stしてみると出てくるファイルのうち、?は新規に追加されたファイル、!は削除されてしまったファイル。
これらのファイルをsvn del、svn addしてみる。
手動でひとつひとつ追加、削除するのは大変なのでsvn stからcutをつかってxargsにわたしてみる。
svn stの!とか?からファイル名までは空白8文字で、cutに行頭から9文字を削除するオプションがあるらしくてそれをつかう。

shell> svn st | grep ! | cut -c9- | xargs svn del
D authn_default.load
D authz_default.load
D cern_meta.load
D disk_cache.conf
D disk_cache.load
D ident.load
D imagemap.load
D mem_cache.conf
D mem_cache.load
D version.load
shell> svn st | grep \? | cut -c9- | xargs svn add
A cache_disk.load
A cache_socache.load
A data.load
A dialup.load
A echo.load
...(後略)...

</pre>

というわけでたくさんのファイルを一括して処理できました。

addの方ではハテナマークをエスケープするためにバックスラッシュを追加した。またファイル名の途中にハテナやビックリが入っていると引っかかりそうなので、行頭から(-e ‘^!’)を入れた方がいいかも。

コメントを残す