ですから、私の同僚の何人か(実際にはPerforceインスタンスの管理を担当しています)が、ワークフローは厳密にプロセスのものであり、私たちが使用するツール(この場合はバージョン管理)について、この小さな議論があります。システム)それを引き受けません。言い換えれば、彼らが指摘するのは、ワークフロー(およびその実行)はツールに依存しないということです。
これについての私の見解は、DVCSは、バックグラウンドで発生する固有の分岐(匿名分岐)のために、より柔軟で明確な方法で人々を奨励するのに優れており、確立した展開モデル(プルなど)を通じてワークフローを実施できるということです。リポジトリ管理、マシンをサーバーとしてセットアップした独裁者/中尉の役割などを介したリクエスト)
CVCSでは、コードを共有する方法が1つしかないため、ポリシーとポリシングを通じてワークフローを実施する必要があると思いますが、DVCSでは、セットアップされたインフラストラクチャ/権限に基づいたフローを使用するだけです。
私が以前の議論を提供したとしても、私はまだそれらを完全に納得させることができません。私は何か間違った言い方をしていますか?そうでない場合、他にどのような議論や例が彼らを説得するのに役立つと思いますか?
編集:私たちが焦点を当てている主なワークフローは、双方にとって意味があるため、独裁者/中尉のワークフローです。
この特定のワークフローに対する私の主張は、CVCSにはパイプラインがない(一元化された方法で作業を共有しているため)のに対し、DVCSには読み取り/書き込み権限の展開方法に応じて実際のパイプラインがあるというものです。
彼らの主張は、このワークフローはブランチを通じて実行できるというものであり、他のプロジェクトの一部のプロジェクト(ポリシー/ポリシングのため)ではこれを実行しますが、開発者がブランチを作成することを禁じています。
CVCSでプルリクエストフローを設定することはそれほど難しいことではありません。サーバー上で膨大な数の個人用ブランチを管理したくないため、誰も設定しないだけです。 Perforceは、 streams や sandbox などの機能を導入することでこれに対処しようとしている珍しいCVCSベンダーの1つです。
DVCSがそれ自体を区別する1つの方法があります。これにより、ローカルワークフローをより細かく制御できます。 1つのスクラムチームは独裁者/中尉モデルを使用でき、別のスクラムチームは単一の集中型サーバーモデルを使用できますが、コードをアップストリームに送信すると、会社全体でまったく異なるワークフローを持つことができます。 DVCSを使用すると、「特定のワークフローを実施する」のが簡単になるというよりも、特定のローカルワークフローを課すことなく、特定のグローバルワークフローを実施するのが簡単になると思います。