SubversionレポジトリをGmailにバックアップするrubyスクリプトGSVN-dump
を作った。ソースは自分から人に見せたがるほど綺麗なものでもないので、ここには書かない。
GSVN-dumpは、「ゴスヴンダンプ」と読むべきかもしれません。ジーエスヴイエヌだと言いにくいし。
GSVN-dump動作の流れ
- gsvn dump
--gmail とかユーザーがコマンドを叩く - svnadmin dump
-r0:HEAD > gsvndump.yyyymmddHHMMDD が実行される - gzip -9 gsvndump.yyyymmddHHMMDD が実行される
- gsvndump.yyyymmddHHMMDD.gzのファイルサイズが大きすぎたら、splitで分割
- メールに添付して、
@gmail.comに送る
こうやって見ると、既存のツールをただ使っているだけであることがわかる。
GSVN-dumpのファイルが送られてきた図
分割されたファイルは、1つのスレッドとしてGmailが勝手にまとめてくれるように、Subjectを設定してある。
そのほか、GSVN-dumpができること
できるようになる(予定の)こと
- インクリメンタルなバックアップ。これは必ず実装される。
- cronに便利な何か
さんくすto
メールの送信にかかる部分は、このサイトにあるsamailからパクらせていただきました。何通も送る必要があるため*1、クラスに押し込めたりしたので、再利用性は少し高くなりました。
samailはGPL2とBSDのデュアルライセンスらしいので、GSVN-dumpもGPL2とBSDのデュアルライセンスになるのか?BSDライセンスって内容シラネ。
*1:ファイルを分割する場合