dropbox と未来のバージョン管理
家ではdropbox使っていて、home ディレクトリというか、作業ディレクトリを丸ごとその下に入れて使ってる。
デスクトップでソース書いて、出先でもノートPCでそれを編集とかが超絶簡単にできてすごく便利。
最近 wimax 導入したので、出先でも地下以外は高速にネットにつながるようになったので便利さに拍車がかかった。
ちなみに、この文章も dropbox 管理下のテキストファイルで作ってる。
←パスがdropbox
それに、dropboxは共有フォルダではなく、ちゃんとバージョン管理されているから、いつどういう修正をしたのかログを追うこともできるしね。
そういう意味で dropboxは、CVSやら Subversion やら、 git やらの同じようなバージョン管理システムなわけだね。
私的には、 git などの分散システムのローカルリポジトリに近い印象がある。
dropbox系のいいところは、 Ctrl + S した瞬間に勝手にアップされるところ。
いちいちコミットしなくても済む。
すごく便利。
これになれると、ソースを修正してコミットなんてめんどくさくてやってられるかーって思ってしまう。
いやいや、コミットを否定しているわけではない。
たとえば、SVN 等に、ctrl + S のタイミングで自動コミットなんてされたらたまらない。
ビルドが通らない、動かないソフトウェアを共有してしまう。
だから、ちゃんとテストして、うごくようになってから commit する。これはとても合理的だ。
だけど、時にはビルドが通らなくてもコミットしたいときがあるよね。
自分の変更を忘れないためとか、あとで戻したいためとか、他と共有したいとき等だ。
こんなことをやりたかったら、SVNだと個人用のブランチをきったり、 git 等の分散型バージョン管理を使えという話になるんだろうけど、、あいつらはとても面倒だと思う。
なぜなら、共有するときはいちいちコミットしなくてはならない。(または、コミットしてpush)
コミット。
確かに、コミットが必要なのはなんとなくわかるけど、1 step の無駄な作業が増えるのがどうしてもイヤだ。
dropboxみたいに ctrl + S のタイミングで勝手に同期して欲しい。
dropboxが本来あるべき個人用のバージョン管理の姿に一番近いと思う。
Ctrl + Sの履歴を教えてくれるし、勝手にコミットもしてくれる。(無料版は履歴に制限があるらしい)
ここで開発してビルドもテストもできたら、ちゃんとしたSVNにコミットするなりすればいいのではないか。
開発の一時ディレクトリとしての dropbox は最強のバージョン管理ツールだと思うんよ。
安全であるならば作業ステップは短い方がいい。
ただ、いいところばかりではない不満もある。
1.今どのファイルをダウンロード/アップロードで同期しているのかよく分からないところ。
dropboxはすごくクールで無口な奴なんだけど、無口すぎるのが怖い。
今、どのファイルを同期しているのかぐらい教えてくれたっていいぢゃないか。
また、あとどれくらい同期するものがあるかの一覧を教えて欲しい。
ネットから落としてきたデータを dropboxに突っ込むと、データが巨大すぎて、なかなか同期されないときがある。
一日ぐらいほっておくと同期されるから、データが大きすぎるだけだと思うんだけど、進捗をもう少し教えてくれてもいいぢゃないか。
2.衝突の検知
dropboxだとファイルの更新が衝突した場合、最後に変更したファイルが採用されて、昔のファイルは別名にリネームされて保存される。
マージぐらいしてくれたっていいぢゃんと思うけど、この仕様はそれほど最悪ではない。
だけど、それが勝手に行われてしまって通知されないのが気に入らない。
衝突したよーどーするのー?って通知とできればマージも欲しいかなぁ。
まずは自動マージを試みてダメだったら、通知でもいいけど。
無口でクールなUIという設計思想?だから難しいのかもしれない。
3.履歴の表示が少し貧弱
ファイルの更新履歴はwebで見れるけど、ちょっと貧弱な気がする。
バージョン間の違いとかを diff で見たいなぁと。
←diffしたい!! (これはsvnのdiff)
また、ディレクトリ単位でこのディレクトリを昨日の時点に戻すみたいなことができると最高なんだけどなーと。。。
現在、ファイル単位で特定のリビジョンに戻すことはできるけど、ディレクトリ単位でまとめてごっそり戻したいです。
んで、それがやりたくなるとディレクトリ間のdiffがほしくなるという。
とりあえず、こんなところかなぁ。
ここら辺に注力した dropbox クローンがでてくればすぐに乗り換えるかも。
結局、私は 自動コミットな gitや hg がほしいんだろうなと思った。