ひよっこ。

I want to…

私が、分散バージョン管理を使おうと思ったただ一つの理由

Posted by hikaruworld : 2010 3月 31

最近デビューしました。

たった一つの理由を挙げろといわれれば

今のプログラミング開発手法のマッチしているから

に尽きる。

TDDやCIが良い例だと思う。

TDDの例

SVNの場合TDDのレッド⇒グリーン⇒リファクタリングのタイミングでコミットするには粒度が小さすぎる。
でもコミットしないと小さな不安が残る。だけど、コミットすると余計なリビジョンがかさむことになる。

分散バージョン管理であれば、レッド→グリーンになったタイミングでローカルブランチにコミット出来る。
そのあと、一つのTDD(設計工程)が終わった段階でまとめてメインブランチにpushする。
※bazaarでのやり方がわからないんだけど(汗

自分で試行錯誤しているときは安心(グリーン)したタイミングでコミット。
で、ひと段落したらメインリポジトリへpushというのが自然な流れで実行できる。

CIの例

CIの場合に、SVNでよくやるのがpost-commit-hock。
要するに、コミット直後のタイミングをhockしてCIで自動テストを実行するようなパターン。

でも、これはイビツだと最近感じる。

リポジトリへのコミット直後のタイミングでテストを実行して、
早い段階でエラーを感知する。これは大事。

でも本当に欲しいのは、メインブランチのコミット前に自動テストを実行して問題があったら
メインブランチへのコミットをリジェクトして欲しい。メインブランチはきれいになっていてほしい。
雨が降るとわかっていたら最初から傘が欲しいんだ。

Bazaarであればそれが出来る。自動ゲートキーパー方式。
Gitとかで出来るかは知らないんだけども。

なぜBazaar

GitでもなくMercurialでもなく、Bazaar。
別に大した事じゃないけど、ほぼPython製で、コミットコメントに日本語が使えたことが大きな理由。
あと、Pythonゆえにネットに情報は少なくても、丁寧に翻訳された日本語ドキュメントがあった。

コミットコメントにユーモアを含めることを身上としている僕(嘘)にとっては
英語で気のきいたユーモアなんて書けなかったので唯一コミットコメントに日本語が通るbazaarを選んだんだ。

2010/03/31 update
今は、GitもMercurialも(たぶん)、日本語のコミットコメントが使えるとのこと。(Thanks! @aroma_black)
Mercurialに関してはEclipseプラグイン経由で日本語のコミットコメントが使えるらしいです。(Thanks! @bleis)

ちなみにbazaarもEclipse経由では日本語が通りませんorz… by 自分

で、話を戻すと

くどいうようだけど、分散バージョン管理(一応以降はbazaarで進めるけども、基本的にはどれでも一緒だと思う)のよいところ。

今のプログラミング開発手法にマッチしているから

自分の仕事のやり方の隙間をあっさり埋めてくれるツールだった。

いろいろ教育が面倒だよね?

確かに教育コストはかかるとおもう。
Bazaarなんて縦横無尽にbranchが切れる上、気が向いたらSVN的に使ったりもできるから。
でも、TDDと一緒に勉強するならコストはそんなにかかんないよね?
でも、CIと一緒に勉強するならコストはそんなにかかんないよね?

実績がないんじゃ?

バカでかいシステムで本当にマージ方式で問題なく運用できるのかと。
でも、linuxの開発以上にでっかいシステムってどれくらいあります?(Thanks @nawoto )

※ちなみにbazaarのリビジョン番号のふられ方はとてもステキ(マージ周りはまた別の機会に)。

迷っているなら…

ちなみにどの分散バージョン管理を使えばいいか迷っている人は、
この辺の記事を参考に決めると良いでしょう。基本好みだと思います。

  1. 分散バージョン管理Git/Mercurial/Bazaar徹底比較
  2. 分散バージョン管理システムの詳細なガイド

といわけで、次回からは私がこよなくbazaarに惚れた理由をツラツラ書いていきたく思います。

2010/03/31 12:00 Update

内容に関して、@aroma_black@bleis に指摘をもらったので、その分を反映。
ありがとー。

まだまだ知らないことだらけですわ。。。

コメント / トラックバック1件 to “私が、分散バージョン管理を使おうと思ったただ一つの理由”

  1. […] 私が、分散バージョン管理を使おうと思ったただ一つの理由 « ひよっこ。 (tags: development) […]

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。