ソフトウェア開発支援
IR情報 会社情報
image_toyo_ss_img_perforce_title_perforce.gif.gif
テクニカルノート015  
image_toyo_ss_img_all_line_yellow.gif.gif
image_toyo_common_spacer.gif.gif
サードパーティ用のベンダー・ブランチを作成
image_toyo_common_spacer.gif.gif
このノートでは、外部組織によって変更されたソースコードをサブミットする「ベンダー・ブランチ」について、その運用手順を説明します。サード・パーティ からコードが提供された(コード・ドロップ)とき、どこが変更されたのかを特定し、必要であれば、それから自分のコードラインへマージしたいと思われるこ とでしょう。
image_toyo_common_spacer.gif.gif
例えば、ディポの//depot/main/gui配下に、ある開発プロジェクトを持っているとします。このプロジェクトの開発はグレイ・グローブス・ソフトウェア(GGS)に外部委託され、//depot/main/gui 配下のすべてのソースファイルはGGSに送られます。
image_toyo_common_spacer.gif.gif
初めにすることは、GGS用にコードラインをブランチすることです。例えば、次のように実行します。
image_toyo_common_spacer.gif.gif
p4 integ -v //depot/main/gui/... //depot/ggs/gui/...
p4 submit

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

その後、GGSによるコード・ドロップにおいて、以下を実行します。:
  1. //depot/ggs/gui/... へマッピングされた空のクライアント・ワークスペースを新規にセットアップします。クライアント・ビューは、次のようになります。:
    image_toyo_common_spacer.gif.gif
    Client: ggs-drop
    Root: c:\ggs
    View: //depot/ggs/gui/... //ggs-drop/gui/...

    image_toyo_common_spacer.gif.gif
  2. GGSからのファイルを、空の "ggs-drop" ワークスペース、すなわち c:\ggs\guiへ展開します。
  3. 次のように p4 flushコマンドを実行し、そのワークスペースがあたかも最新リビジョンを同期しているかのように見せかけます。:


    image_toyo_common_spacer.gif.gif
    p4 flush //depot/ggs/gui/...

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

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

    image_toyo_common_spacer.gif.gif
    Macintosh上でMPWを使っている場合には、最終行は次のようになります。:
    image_toyo_common_spacer.gif.gif
    files -f -q -r -s | p4 -x - add

    image_toyo_common_spacer.gif.gif
  5. そのチェンジリストをサブミットします。
これで、GGSによる変更はディポへ登録されました。この操作は、GGSがコードを送ってくるたびに実行できますので、GGSによる変更を適切に記録することにもなります。
image_toyo_common_spacer.gif.gif
場合によっては、GGSの変更を自社のコードラインへ取り込みたいかもしれません。そのときは、単純にベンダー・ブランチから自社コードラインへ、次のように反映を行います。:
image_toyo_common_spacer.gif.gif
p4 integ //depot/ggs/gui/... //depot/main/gui/...
p4 resolve
p4 submit

image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_line_dot_526.gif.gif
リモート・ディポを使用

もし、ベンダーもPERFORCEを使用している場合には、ベンダーのディポをリモート・ディポとして直接アクセスできるかもしれません。逆も同様です。リモート・ディポの使用についての詳細は、NOTE030をご覧ください。
image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_btn_yellow_bgwhite2.gif.gif戻る

detail__vid--text.png

はい (0)
いいえ (0)

PAGE TOP

本ウェブサイトではサイト利用の利便性向上のために「クッキー」と呼ばれる技術を使用しています。サイトの閲覧を続行されるには、クッキーの使用に同意いただきますようお願いいたします。詳しくはプライバシーポリシーをご覧ください。