Perforce(商用/クローズドソース、集中型)は、さまざまな理由で業界標準です。
- これは商用製品です。つまり、商用サポートが付属しています。オープンソースプロジェクトは、無料ライセンスの対象となる場合があります(技術サポートを除く)。
- ワークスペースを非常によくサポートしているため、非常に柔軟なソースおよびアセットディレクトリのレイアウトが可能です。
- チェンジリストを非常によくサポートします。
- 誰が何に取り組んでいるかがわかります。ゲームは、他の開発プロジェクトと比較して、急速に変化するバイナリファイル(アセット)の数が異常に多くなっています。ほとんどの場合、これらはマージできないため、誰が何を、どこで、いつ持っているかを追跡することが重要です。SubversionおよびDSCCクライアントは、この手法を意図的に避けていますが、特定のアプリケーションでは非常に有益です。
- 巨大なコード/アセットベースをサポートしています。ツリーのサブビューが数十ギガのギグである場合に重要である、クライアントマシンに重複データを保存しません。
とはいえ、Perforceが業界での地位が脅かされていると感じていないことは、ほぼ毎日のように痛々しいほど明白です。P4VやP4SCC(Visual Studioと統合)などのビジュアルツールは遅く、バグが多く、後者はVisual StudioをフリーズするためにVisual Studioをフリーズすることが知られています。AnkhSVNはPerforceよりも数マイル先です。
xanによるコメント:ただし、マージツールであるP4Merge(差分とマージに使用)は、Tortoise Mergeの同類のものよりも優れており、はるかに優れていることに注意してください。驚いたことに、このコンポーネントはP4 Visual Toolsパッケージの一部として無料で利用できます。
slicedlimeによるコメント:Perforceのもう1つの欠点は、特に大きな木がある場合、Perforceでの分岐が大きな痛みになる傾向があることです。他のほぼすべてのvcsが分岐とマージに優れています。ただし、これは通常、上記の利点を支払うための小さな価格です。
roeによるコメント:Perforceは非常におしゃべりです。サーバーが関与していなければ、多くのことは起こりません。最も注目すべきは、編集のためにオープンにするためにサーバーが必要なことです。つまり、サーバーへの接続を切断する場合は、いくつかのフープをジャンプする必要があります。
jristaからのコメント:100年をはるかに超える長きにわたる開発および品質エンジニアリングチームを擁するPerforceの2年以上の日常ユーザーとして、私はこれに精通しています。それはまともなソース管理システムですが、SCCシステムを評価する人が知っておくべき欠点があります:
- 他の人が述べたように、分岐/統合は特に面倒で困難です。あなたはコントロールの神聖な量を持っていますが、それは過度の複雑さを犠牲にして来ます。一方、ビジュアルマージツールは他に類を見ないツールであり、美しい3ファイルの「ベース」マージビューを表示します。Perforceはブランチパスのいくつかのグラフィカルな視覚化(リビジョングラフと呼ばれます)を提供しますが、視覚化の方法はしばしばツールを役に立たなくします。1つまたはごく少数のファイルについて非常に短い時間セグメントのみを表示する必要がある場合は、それ以上に役立ちます。また、リビジョングラフをナビゲートすることはほぼ不可能です。
- PERFORCEは非常に効率的なツールでもありません。ほとんどすべてのファイル操作でファイルとデータの複製が必要になるためです:分岐、ラベル付け、変更リストなど。ここではスパースまたは軽量のタグ付けや分岐はありません。変更を追跡するために膨大な量のディスク領域を使用することを恐れていない場合、perforceがおそらく役立ちます。そうでない場合は、別のツールを使用します。
- PERFORCEはワークスペースを使用しますが、ディスク上の実際のファイルを使用して何らかの状態を判断するのではなく、PERFORCEがワークスペースのすべての状態をキャッシュするため、時々イライラすることがあります。これは、何らかの理由でディスク上の物理ファイルが実際に最新ではないときに、ワークスペースが最新であると言うため、ファイルが同期されないことがよくあります。
- 最後に迷惑なのは、Perforceがネットワーク上でかなり残酷なことです。これは非常におしゃべりなプログラムであり、かなりの量の帯域幅を消費します。ネットワーク接続が失われると、接続が回復するまでソース管理ファイルで作業を行えないという高いリスクが発生します。まだ、Perforceでオフラインで実行できるアクティビティを発見していません。