« パッケージから学ぶ4大分野の業務知識 | トップページ | TortoiseHgでSVNを使う方法 »

2010/03/21

JoelもMercurialを使っている

Joelは分散バージョン管理(DVCS)にMercurialを使っているらしい。

【元ネタ】
分散バージョン管理で間違いないって、ベイビー - The Joel on Software Translation Project

Subversion, Git, Redmine, Hudson -- 結局こうなった ? tune web

(前略)
分散バージョン管理で実際のところ一番重要なのは、「分散」という部分ではないのだ。
重要なのは、このシステムが「バージョン」ではなく「変更」で物事を捉えているということだ。
(中略)
Subversionユーザからこんな話を聞かされたことが何度あったかわからない。「コードをブランチしようと思って、それはうまくいったんだけど、マージする段になったら、もうまったくの悪夢で、すべての変更を1つひとつ手で再び当て直さなきゃならなかった。こんなこと2度とやるものかと誓って、ブランチの代わりにif文を使う新しい手法を開発したんだ」
時には彼らが自分の開発したトランク1つのやり方を誇りに思っていることさえある。自分の使っているバージョン管理ツールが本来果たすべき役割を果たさない問題を回避したのが美徳でもあるかのように。
分散バージョン管理では、マージは簡単で、うまく機能する。だから安定版ブランチと開発版ブランチを作ったり、あるいはデプロイ前にQA チームがテストするための長期間存続するブランチを作ったり、ちょっと新しいアイデアを試して具合を見るための短期的なブランチを作ったりすることができる。
これは見落としてしまうにはあまりに重要だ。私がここで文章を書くようになってからの10年間に起きた、ソフトウェア開発技術における最大の進歩かもしれない。
(後略)

CVSはバージョン管理の概念をもたらした。
Subversionはチェンジセットという概念をもたらした。
MercurialやGitは、自動マージのおかげで気軽にブランチを作ってパッチを当てたり、実験したり、安定版と開発版を使い分けるのが可能になった。
つまり、タスクブランチ、トピックブランチを楽に運用できるようになった。
これがどれだけの威力を持っているか、可能性を持っているか、まだ本当に分かってない。

|

« パッケージから学ぶ4大分野の業務知識 | トップページ | TortoiseHgでSVNを使う方法 »

廃止Mercurial」カテゴリの記事