p4 integrate

ブランチまたはマージするファイルやストリーム仕様を作業状態にします。

p4 integrateコマンドは、p4 integと略記することができます。

構文規則

p4 [g-opts] integrate [options] fromFileSpec[revRange] toFile
p4 [g-opts] integrate [options] -b branch [-r] [toFileSpec[RevRange] ...]
p4 [g-opts] integrate [options] -b branch -s fromFileSpec[revRange] [toFile ...]
p4 [g-opts] integrate [options] -S stream [-r] [-P parent] [file[revRange] ...]

次のように[options]を使用できます。

-c changelist  -Di  -f -h -O[b][r]  -n -m max -R[b][d][s] -q -v

ストリームの場合は、以下のコマンドを使用することができます。

p4 integrate -S stream [-As | -Af]

説明

1つのファイルに対して行った変更を他のファイルにも伝達する必要がある場合には、 p4 integrateでそのプロセスを開始します。 このコマンドには、反映元ファイルおよび反映先ファイルの指定がファイル、ブランチ、 ストリームのいずれを使用しているかによって、4つの構文バリアントがあります。

このコマンドの最も単純な構文バリアントはp4 integrate fromFile toFileという形式で、 これはバージョニングサービスにfromFileの変更をtoFileに伝達する 必要があることを知らせます。また、次のように動作します。

  • toFileがまだ存在していなければ、 fromFiletoFileにコピーした上で、 クライアントワークスペースでtoFilebranchのための 作業状態にします。
  • toFileが存在し、上記のようにfromfileと共通の祖先を持つ場合、 toFileintegrateのための作業状態にします。 この場合、p4 resolvefromFileの変更のすべて、 または一部をtoFileに伝達するか、 あるいは伝達しないかの選択をします。

    p4 resolveコマンドは、 theirsとしてfromFileを、 yoursとしてtoFileを、 baseとして共通の最も編集されたファイルを それぞれ使用します。

  • fromFileが最新リビジョンで削除されている場合、 (そしてfromFiletoFile間の前回までの変更が すべて反映されている場合)、toFileをクライアントワークスペースで deleteのため作業状態にします。
  • p4 moveを使用してファイルを移動する場合、またはOSに備え付けのコマンドを使用して ワークスペース内でファイルの名前を変更する場合(p4 reconcileまたはp4 statusを使用して、自分が行った移動を反映するために チェンジリストを更新する場合)のいずれかでは、p4 integrateはこれらの操作を自動で検知して、 反映元と反映先の間のマッピングを適切に調節し、マッピングし直す ファイルペアごとにファイル名の衝突解決をスケジュールします。

(利用可能なオプションの中には、この動作を変更するものもあります。 詳しくは、「オプション」を参照してください)

このプロセスは、ディポに対してp4 submit toFileを実行した時点で完了します。

注意

従来のブランチまたはその他のストリームディポからタスクストリームに反映する場合、 ファイルを最初に編集してサブミットしない限り、そのファイルは 親ストリームまではコピーされません。

複数のファイルを指定するには、fromFileの場合もtoFileの場合も ワイルドカードを使用します。 fromFileで使用するワイルドカードは、 toFileで使用するワイルドカードと 正確に一致する必要があります。 Helixサーバは、 fromFileパターンとtoFileパターンを比較し、 fromFiletoFileのペアのリストを作成し、 各ペアの統合操作を実行します。

シンタックスp4 integrate fromFiles toFilesでは、 fromFilesの変更をtoFilesに伝達する必要が生じるたびに、 fromFilestoFilesの間のマッピングを指定する必要があります。 これに代わる方法は、 p4 branchfromFilestoFilesの間のマッピングをbranch viewに保存し、 fromFilestoFilesの間で変更を伝達する必要が生じるたびに p4 integrate -b branchviewを使用する、というものです。

デフォルトでは、p4 integratebranchまたはintegrateのための作業状態にされたファイルは、 クライアントワークスペースでは読み取り専用になります。 これらのファイルは、サブミット前に、p4 editであらためて editのための作業状態にすることができます。

toFilefromFileから反映されるたびに、 Helixサーバは その反映の結果を記述する 反映記録をデータベースに生成します。 この反映記録には、 fromFileおよびtoFileの名前、 toFileに反映されたfromFileのリビジョン、 toFileの新しいリビジョン番号、 反映時に行われたアクション(操作)が含まれます。 反映操作の詳細については、「p4 integrated」を参照してください。

ほとんどの場合、p4 integrateは遅延コピーを行います。ファイルの内容はサーバに複製されません。反映記録にはファイルを再現するための 十分な情報が含まれているからです。

ヒント

p4 integrateを使用しない場合は、次の選択肢があります。

  • p4 populateこのコマンドは、ワークスペースでファイルを開かずに 速やかにファイルをブランチします。
  • p4 copyこのコマンドは、衝突解決をスケジュールすることなく、 コピーするファイルを開きます。状況に応じて、p4 copy-vオプションを指定するかどうかを検討してください。
  • p4 mergeこのコマンドは、マージするファイルを開き、すべての変更に対して 衝突解決をスケジュールします。

オプション

反映用基本オプション

-b branchname [toFiles ...]

branchnameのブランチビューにある sourceFile/targetFileのマッピングを利用して ファイルの反映操作を行います。 toFilesの引数が与えられている場合、 toFilesによって指定されたパターンに一致する ブランチビューの反映先ファイルのみが含まれます。

toFilesでリビジョン範囲が指定されている場合、 その範囲は反映先リビジョンではなく 反映元リビジョンの範囲を示します。

fromFiles toFiles

fromFilesは「反映元ファイル」と呼ばれ、 toFilesは「反映先ファイル」と呼ばれます。

p4 integrateの動作対象となるtoFilesは、 必ずp4 clientのビューに含まれていなければなりません。

-n

実際の反映操作は行わずに、このコマンドが実行することになる反映操作を表示します。

-v

このオプションを使用するのはお勧めしません。代わりに、p4 populateコマンドを使用してください。

反映先ファイルを解決する必要がない場合に-vオプションを指定すると、 クライアントワークスペースファイルが変更されないバーチャル統合が実行されます。バーチャル統合をサブミットすると、p4 syncを使用して ワークスペースを更新できるようになります。

-c changelist

指定した作業中チェンジリスト内のtoFilesを、 branchintegrate、またはdeleteのための作業状態にします。

このオプションが付いていなければ、ファイルはデフォルトのチェンジリスト内で 作業状態にされます。

-q

クワイエットモードは、反映、コピー、マージの対象となるファイルのリストに関する、 通常の出力メッセージを抑止します。エラーまたは例外的状態に関するメッセージは表示されます。

g-opts

グローバルオプション」を参照してください。

高度な反映オプション

-b branchname -s fromFile[revRange] [toFiles ...]

最も単純な形式p4 integrate -b branchname -s fromFileでは、 branchnameのブランチビューに含まれる反映元/反映先のマッピングを用いて ファイルの反映を行うことができます。ただし、反映元ファイルは fromFileで指定されたパターンに一致するものに限られます。

より複雑な形式でfromFiletoFileの両方を指定すると、 次の2つの手順で反映が両方向に実行されます。

  1. fromFileからtoFile
  2. toFileからfromFile

p4 integrateのこのバリエーションは、 Helixサーバのグラフィックアプリケーションに 必要な機能を与えるために作成されたものですが、 形式が複雑なので使用することはまれです。

-b branchname -r [toFiles ...]

ブランチビューのマッピングを逆にし、反映先ファイルから反映元ファイルへの反映を行います。

-Di

-Diオプションは、削除されたリビジョンが扱われる方法を変更します。 反映元ファイルが削除され再び追加された場合、削除の前に行われたリビジョンは、 同じ反映元ファイルの一部とみなされます。 デフォルトでは、再び追加されたファイルは、以前からある同じ名前の ファイルに対して関係がないとみなされます。 ソースファイルを移動または名前更した場合、移動/追加または移動/削除目的のリビジョンは、 branchリビジョンおよびdeleteリビジョンとして伝達されます。

-f

fromFileおよびtoFileのすべてのリビジョンに対して、 たとえその一部のリビジョンが過去に反映操作をされていても、 反映を強制します。リビジョン範囲と共に使用することが最適です。 リビジョン範囲との使用に適しています。

-h

反映操作の前に、反映先ファイルを最新リビジョンに同期する処理を、 自動的には行いません。代わりに現在のワークスペースにあるリビジョンを使用します。

-m max

コマンドで反映を実行するファイルを初めのmax件に制限します。

-Ob

-Obオプションを指定すると、マージ用のbase閉じた ファイルの場合は、反映元ファイルと反映先ファイルにあるファイルリビジョンの中で共通の編集または変更が最も多いファイルリビジョンのことを指します。 チェックアウト後のストリームの場合は、チェックアウト済みバージョンの派生元であるパブリックバージョンのことを指します。リビジョンが出力されます(存在する場合)。

-Or

-Orオプションは、スケジュールされている衝突解決を出力します。

-Rb

-Rbオプションは、反映先ファイルを自動でブランチするのではなく、 衝突解決結果のブランチをスケジュールします。

-Rd

-Rdオプションは、反映先ファイルを自動で削除するのではなく、 解決結果の削除をスケジュールします。

-Rs

-Rsオプションは、既に反映済みのチェリーピッキングされたリビジョンを スキップします。このオプションはマージ結果を改善しますが、ファイルごとに 複数の衝突解決をスケジュールする必要があります。

-S stream [-P parent]

ストリームをその親に反映します。

マッピングの方向を反転するには、-rオプションを使用します。

設定された親を無視して別のストリームに反映するには、-Pを指定します。

反映されたストリームファイルをサブミットするには、現在のクライアントを 対象ストリームに切り替えるか、対象ストリームの子バーチャルストリームに 切り替える必要があります。

以下のいずれかのオプションを指定しなかった場合、ファイルとストリーム仕様の両方が反映されます。

-Af -As
ファイルだけが反映されます ストリーム仕様だけが反映されます

使用上の注意点

ファイル引数でリビジョン指定子を使用できるか? ファイル引数でリビジョン範囲を使用できるか? 最低限必要なアクセスレベル

はい

はい

open

p4 integ //depot/dev/... //depot/rel2/...

//depot/dev/...のすべてのファイルを//depot/rel2/...の対応するファイルにブランチまたはマージします。

//depot/rel2/...内に対応するファイルが存在しない場合は、このコマンドで生成されます。

p4 integ -b rel2br

ブランチビューrel2brに含まれるすべてのfromFilesを、 そのブランチビューのマッピングに従い、 対応するtoFilesにブランチまたはマージします。

p4 integ -b rel2br //depot/rel2/headers/...

toFiles//depot/rel2/headers/...にマッピングされるブランチビューrel2br内の fromFilesをブランチまたはマージします。

p4 integ -b rel2br -r //depot/rel2/README

ブランチビューrel2brのマッピングに従って fromFile//depot/rel2/READMEtoFileからブランチまたはマージします。

p4 integ -r -As -S //str/dev3 ストリーム仕様の反映操作を、その親ストリームから//str/dev3に対して実行します。//str/dev3noinheritParentViewが含まれている場合に、このコマンドを実行すると便利です。それ以外の場合、親ストリームによる影響を受けることはありません。

関連コマンド

ブランチマッピングを生成または編集する

p4 branch

既存のブランチマッピングのリストを参照する

p4 branches

既に実行されサブミットされた反映のリストを参照する

p4 integrated

ファイルをp4 integrateコマンドで作業状態にしてから、 ファイル間で変更を伝播する:

p4 resolve

特定のファイルに対して実行されたあらゆる反映の履歴を参照する

p4 filelog