DVC を使用することには間違いなく多くの利点があり、集中型 VC のように使用できますが、ローカル コミットがあり、小さなグループのためにプロジェクトを非常に簡単にフォークできるため、継続的インテグレーションのサポートが難しくなりますか? CI サーバーによってテストされた最新の変更に誰もがアクセスできるため、互換性のない変更の可能性を最小限に抑えることができます。
2 に答える
DVCS を一元化できます。DVCS と集中化されたものの違いは、DVCS では集中化する必要がないことです。
誰もが変更をプッシュでき、誰もが最新のコードをプルできる中央リポジトリを持つことができます。サーバー上にコミット フックを記述して、誰かがコードをプッシュするたびにテストを実行して、テストに合格することを確認できます。集中型のバージョン管理に似ていますが、中央サーバーにプッシュする準備が整う前に、ローカル ブランチを作成していくつかのローカル コミットを行うことができるため、より優れています。
多くのことが壊れる大きな変更を行っていて、いくつかのコミットを行いたいと思ったことがありますが、完了してすべてが再び修正されるまで共有したくありませんか? それが DVCS によって簡単になります。
ソース管理システムが継続的に統合しないように促しているため、CIの実行が難しくなります。ただし、中央リポジトリへの定期的な統合を妨げるものはまったくありません。チームはそれについて規律を保つ必要があります。
小規模なチームがプロジェクトをフォークしてしばらくの間独自のことを行う場合は、そのフォークに対しても継続的インテグレーションビルドを実行し、2つのフォーク間に定期的な統合を設定する必要があります。
これは、Accurevが推進するストリームベースのマルチステージ継続的インテグレーション戦略に似ています:http:
//www.accurev.com/multistage-continuous-integration.html