PERFORCE ~Perforce Software,lnc.~

PERFORCE2011.1に新たに機能搭載
1. 属性を持つブランチ;最も実用的なブランチ手法を標準搭載


ストリームグラフ

ストリームは、プロジェクトを構成するモジュールを、それらの管理方法とともに能率的に編成します。ストリームには柔軟かつ最良のブランチ/マージ戦略が盛り込まれており、各ブランチに対する変更が適切な方向と順序で伝播するように制御します。
製品のアーキテクトはストリームによって何をするのかを定義します。それによりストリームの運用方法は他のユーザーに継承されていきます。

2. 開発効率を改善、拡張性を向上

ストリームは以下の作業を効率化します。

  • コードを再利用する
  • マージを自動化する
  • 作業するブランチを高速に切り替える
  • 最小限のファイル置き換えによりワークスペース※1を更新する
  • ワークスペース※1やブランチの情報を再利用する

Perforceサーバがこれらの作業を制御しますので、ストリームを使用しているユーザーはその間、開発業務に集中できます。大量のデータを利用するプロジェクトでは、時間を抑えパフォーマンスを向上させることができます。

3. 構成管理を理解する時間を大幅に短縮

ストリームに搭載されたビジュアルツールでは、ブランチ操作がドラッグアンドドロップで簡単に行えます。通常の作業はワンクリックで完了します。ストリームの能率的な管理方法とツールのサポートによってユーザーはブランチを管理しやすくなります。

4. ストリームの主な特長

  • 変更の伝播方法を体系化する
  • 作業するブランチを高速に切り替えることができる
  • 最小限のファイル置き換えでワークスペース※1のファイル構成を正しい状態にすることができる
  • ストリーム構成と依存関係を的確に管理する
  • 継承-ストリームとワークスペース※1を容易に流用できる
  • 最も実用的な標準機能として使用できる
  • ビジュアルツールとその管理方法が生産性を向上し、構成管理を理解する時間を短縮できる
  • 様々な開発現場に対応し、開発効率をアップできる

5. ストリーム機能概要

ブランチ機能を拡張して、Perforce Software社が提唱しているコードラインの概念をストリーム機能として実装しました。ブランチ機能から主に次の点を拡張しています。

  • ブランチ機能に属性を追加してストリーム機能を実現
    メインラインの概念をブランチに適用し、ブランチにメイン、リリース、開発の3種の属性を追加してストリーム(メインストリーム、リリースストリーム、開発ストリーム)を定義します。
    こ の定義により、PERFORCEはリリースストリームを常に安定な状態に保持しようとし、開発ストリームやメインストリームからの不安定なマージを防止す ることができます。また、メインストリームの最新状態に対して、まだ衝突解決していない開発ストリームからのマージを防止することもできます。
  • マージが必要なファイルセットを自動検知
    リリースストリームに変更があった場合、その変更が不具合修正ならメインストリームや開発ストリームにもその修正を反映させる必要があります。
    このような場合、PERFORCEはメインストリームや開発ストリームにリリースストリームの変更をマージする必要があることをユーザーに通知します。また、同様に開発ストリームを変更すると、メインストリームへのマージが必要であることをユーザー通知します。
  • ストリームごとにワークスペース※1を作成
    ストリームを作成すると、PERFORCEは各ストリーム専用のワークスペース※1を作成します。各ストリームに専用のワークスペース※1があることで、開発ストリームでの作業中に誤ってメインストリームやリリースストリームのファイルを修正してしまう作業ミスを防止します。
  • ストリーム間の依存関係を可視化するストリームグラフを提供
    ストリームを使用した開発を促進するために、ストリーム間の依存関係を可視化するストリームグラフを提供します。ストリームグラフを使用することで、マージが必要なストリームを明確にでき、マージ忘れを防止できます。
    また、ストリームグラフ上で各ストリームを選択して、作業中のワークスペース※1をストリーム専用のワークスペース※1に切り替えることもできます。この機能により、ワークスペース※1とストリームがより密接に連携されます。

ストリーム機能を使用することで、今までのように開発者がすべてを判断して行う構成管理ではなく、 PERFORCEが開発者の作業を予測・支援する、より効率の良い、信頼性の高い構成管理を実現することが可能です。

※1 ワークスペース:各ユーザーのローカルな作業領域