DVCSの優れている点
DVCSの利点を語るうえで欠かせない2つの大きな側面がある。それは分散化とワークフローである。DVCSは、分散化という側面から見た場合、地理的に分散したチームや、緊密なかたちで組織化されていないチーム、機動力を必要とするチーム、あるいは全員が常に中央リポジトリに接続できるとは限らない状況にあるチームにとって素晴らしい選択肢となるだろう。ただ、Joel Spolsky氏が述べているように、より興味深いのはブランチとマージの捉え方である。筆者も同氏の意見に同意する。
チェンジセットの性質上、他者の変更を自らのものにマージする方がずっと気楽に行えるはずである。というのも、自らの行った変更を中央リポジトリに反映させるわけではなく、他者の変更を中央リポジトリに反映させるわけもないためだ。開発者は他者の行った変更を自らのリポジトリに取り込むことになるのである。これにより、さまざまな実験を行ったり、概念実証版を作成したり、機能限定版や品質保証版を作り出すことが容易になる。また、こういったタスクが容易に行えるようになれば、より頻繁に行えるようにもなるわけだ。
筆者は数年前からTeam Foundation Server(TFS)を使用しているが、そのマージには辟易としている。そして、あまりにも面倒であるために、ブランチを行わないようになってしまった。その後、同じプロジェクトで働く開発者が増えたことで、さまざまな問題が噴出するようになった。こういったことを考えた場合、数多くのファイルを各所で変更する必要のある大規模チームにとって、DVCSの採用は大きな利点となるだろう。というのも、各サブチームはシステムにおいて自らが責任を負っている部分について作業を行え、変更を他者に公開できるようになった時点でプロジェクトのリポジトリに容易に戻せるためである。