FAQ

カタログ一覧

PERFORCE

ID.015

Q. サードパーティ用のベンダー・ブランチを作成

A.


このノートでは、外部組織によって変更されたソースコードをサブミットする「ベンダー・ブランチ」について、その運用手順を説明します。サード・パーティ からコードが提供された(コード・ドロップ)とき、どこが変更されたのかを特定し、必要であれば、それから自分のコードラインへマージしたいと思われるこ とでしょう。

例えば、ディポの //depot/main/gui配下に、ある開発プロジェクトを持っているとします。このプロジェクトの開発はグレイ・グローブス・ソフトウェア (GGS)に外部委託され、//depot/main/gui 配下のすべてのソースファイルはGGSに送られます。

初めにすることは、GGS用にコードラインをブランチすることです。例えば、次のように実行します。
p4 integ -v //depot/main/gui/... //depot/ggs/gui/...
p4 submit

(デフォルトで、PERFORCEは反映先のファイル(//depot/ggs/gui/...)を関連するクライアント・ワークスペースへコピーします。-v オプションを付けるとこのファイル転送が抑止され、処理が速くなります。)

その後、GGSによるコード・ドロップにおいて、以下を実行します。:
  • //depot/ggs/gui/... へマッピングされた空のクライアント・ワークスペースを新規にセットアップします。クライアント・ビューは、次のようになります。:
    Client: ggs-drop
    Root: c:\ggs
    View: //depot/ggs/gui/... //ggs-drop/gui/...
  • GGSからのファイルを、空の "ggs-drop" ワークスペース、すなわち c:\ggs\guiへ展開します。
  • 次のように p4 flushコマンドを実行し、そのワークスペースがあたかも最新リビジョンを同期しているかのように見せかけます。:


    p4 flush //depot/ggs/gui/...
  • NOTE002に示された方法により、GGSで変更されたすべてのファイルを持つチェンジリストを作成します。:
    cd c:\ggs\gui
    p4 diff -sd ... | p4 -x - delete
    p4 diff -se ... | p4 -x - edit dir/s/b | p4 -x - add

    UNIX上では、最終行は次のようになります。:
    find . -type f | p4 -x - add

    Macintosh上でMPWを使っている場合には、最終行は次のようになります。:
    files -f -q -r -s | p4 -x - add
  • そのチェンジリストをサブミットします。
  • これで、GGSによる変更はディポへ登録されました。この操作は、GGSがコードを送ってくるたびに実行できますので、GGSによる変更を適切に記録することにもなります。

    場合によっては、GGSの変更を自社のコードラインへ取り込みたいかもしれません。そのときは、単純にベンダー・ブランチから自社コードラインへ、次のように反映を行います。:
    p4 integ //depot/ggs/gui/... //depot/main/gui/...
    p4 resolve
    p4 submit

    << PERFORCEに関するFAQ一覧へ戻る