継続的インテグレーション
開発者は変更に着手するとき、現在のコードベースのコピーを取って作業する。他の開発者が変更したコードをソースコードリポジトリに提出すると、このコピーは徐々にリポジトリのコードを反映しなくなる。既存のコードベースが変更されるだけでなく、新しいコードを追加したり、新しいライブラリやその他のリソースを追加したりすることで、依存関係や競合が発生する可能性がある。
メインラインにマージせずにブランチでの開発が長く続けば続けるほど、開発者ブランチが最終的にマージされたときに複数の統合の競合や失敗が発生するリスクが高くなる。開発者がリポジトリにコードをコミットするとき、まず、コピーを取ってからのリポジトリの変更を反映させるためにコードを更新しなければならない。リポジトリに含まれる変更点が多ければ多いほど、開発者は自分の変更点をコミットする前に、より多くの作業をしなければならない。
最終的には、リポジトリが開発者のベースラインとあまりにも異なるものになってしまい、「マージ地獄」や「統合地獄」と呼ばれるものに突入してしまうことがある。その場合、統合にかかる時間は、元々の変更点を作るのにかかった時間を超えてしまう。