SVNから分散バージョン管理へ

今までバージョン管理はSubversionを使ってました。個人開発なのに。
SubversionをVPSに入れてそこで管理するという運用をしてたんですが、これがなかなかウマく行ってなくてですね。

まず前提として、基本的に個人開発なんですよ。チームでひとつのコードを触ったりすることはないわけです。
で、インターネット上のサーバにSubversionを入れてて、2台のPCからアクセスする、ということを想定していました。
自宅にはMacBook Pro 15"が置いてあり、持ち運び用としてMacBooc Air11"があります。なので、自宅ではMBP、外出先ではMBAと使い分けてます。

んで、1つのリポジトリをMBP/MBAそれぞれからチェックアウトすると、当然この2台の間でソースは異なります。絶えずチェックインしてるわけじゃないんでね。
これだと困るんで、リポジトリからのチェックイン/チェックアウトはMBPで行うことにして、MBAはSugerSyncでMBPのソースを共有することにしました。

これだと、インターネット上にリポジトリ置いてあるのに、MBPのローカルリポジトリと同じなんだよなーと。なんかムダだなーと。

でも、ホントにローカルに置いちゃうと、ディスククラッシュしたときに困るじゃない。でもVPSならバックアップとか取られてたりとか、万一の時になんとかなりそうな気がするじゃない。と、思ってたんですが、先日のさくらクラウドの一件のこともあって、データは消える時は消えるんだなと。自己責任なんだなと思ったわけですよ。

だったら、PCローカルでバージョン管理するようにして、リポジトリをDropbox配下に置けば、クラウド上のバックアップになるんじゃないかと。MBPはTime MachineのバックアップもNASにとってるので、LAN上にもバックアップが存在してることになると。
コッチのほうがディスク障害とかのトラブルに強うそうじゃないか。

いや、まて、だったらローカルにSubversion入れるんじゃなくて、GitかMercurialあたりにしたらいいんじゃないですかね。イマイチこの2つの違いがわかってないですが。
というとこで、ちょっとGitとMercurialを調べてみるかー。