DropboxとVCS

仕事場とのデータ同期のためVCS (version control system)としてSubversionを使っていた。Subversionそのものは非常に便利で、サーバさえ建てていれば、いつでもどこでもリポジトリ内のデータをネットワーク越しに取り出す事ができる。そこで、仕事場でなにか変更をしたとき、コミットしてリポジトリにデータを反映し、家でアップデートを行ってその変更をローカルに反映させる。こうして家と仕事場とのデータ同期を計っていたわけだ。

しかしそこには一つ問題があった。これはいわゆるヒューマンエラーなんだが、つまり「コミットのし忘れ」だ。コミット作業は基本的に手作業のため、うっかりコミットし忘れて家に帰ってしまうと、もう手の出しようがない。次に仕事場へ行くまでお預け状態になってしまう。

そこでもう一度この「版管理」と「同期」について考え直す必要が出てきた。もともと版とは、何かデータに変更があって、その変更が正しい変更であると思われるときのその状態のことである。つまり、ちょっとした変更は版とは呼べない。加えて同期は、変更があったときその状態を複数箇所へ反映する事である。つまり根本的に変更の取り扱いが異なる。

そこでフォルダ同期ソフトの事が浮かぶわけだ。フォルダ同期ソフトには2種類有り、一つがP2P形式のもの。例えばFolder Shareなどがある。ただ、このFolder Shareは同期フォルダ数に制限があるなどややその機能が不足している。もう一つのフォルダ同期ソフトの形態としてサーバ形式のものがある。それがDropboxである。Dropboxは同期データを一時Dropboxのオンラインストレージサーバへ保存し、クライアントが導入されている各マシンへ、その情報を反映させるという形を取る。この反映のタイミングは同期が指定されているフォルダ内のデータへ変更が生じたときに行われる。つまり、SubversionなどのワーキングコピーをDropboxの同期フォルダへチェックアウトしておき、作業を行うと、ファイルに変更があったとき自動で各マシンへその変更が反映されると言うわけである。そして、作業が一段落したとき、その状態をSubversionでコミットしておけば、いつでもある確定をした版が取り出せるというわけである。

ただし、今度はファイルをエディタで変更して「保存」をし忘れないか心配になる。(自動保存データで同期ってのはなぁw)