p4 stream

このコマンドは、ストリームインスタンス(ストリーム定義とも言います)の作成や編集を行う場合に使用します。

構文規則

p4 [g-opts] stream [-f] [-d] [-P parent] [-t type] [--parentview inherit|noinherit] [name]

p4 [g-opts] stream [-o [-v]] [-P parent] [-t type] [--parentview inherit|noinherit] [name[@change]]

p4 [g-opts] stream [-f] [-d] name

p4 [g-opts] stream -i [-f]

p4 [g-opts] stream edit

p4 [g-opts] stream parentview [-c changelist# -n -o --source-comments] [--inherit|--noinherit]

p4 [g-opts] stream resolve [-a<flag>] [-n] [-o]

p4 [g-opts] stream revert

説明

p4 streamコマンドによってHelixサーバストリームを管理することができます。 ストリームとは、変更の構造とフローを制御するためのルールを持つ、 階層構造からなるブランチです。 ストリームの階層閉じた ストリームディポ内にあるストリーム間の親から子への関係のセットです。は、ユーザがストリームに割り当てるタイプによって指定される ストリームの安定性に基づきます。

メインラインストリーム
  • 比較的安定性が高い
  • ストリームディポ内のすべてのストリームの親
開発ストリーム
  • 最も安定性が低い(最も変化しやすい)
  • フローが制御される
リリースストリーム
  • 安定性が高い
  • フローが制御される
タスクストリーム
  • 編集後のファイルをリポジトリに昇格させるための、一時的な軽量ストリーム
  • ブランチ後のファイルと反映後のファイルは、シャドウテーブルに保管されます。このシャドウテーブルは、タスクストリームを削除またはアンロードすると、システム上から削除されます
注意

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

バーチャルストリーム
  • ローカルデータを保存せずに親ストリームと子ストリームの間でコピーおよびマージを行う
  • 実際のストリームではなく親ストリームの代替ビュー

ストリームの内容は、ユーザがマップするパスによって定義されます。 デフォルトの場合、ストリームの構造は親ストリーム(ブランチ元のストリーム)と 同じになります。ただし、ストリームの構造を変更することにより、指定したファイルが 他のストリームにサブミットされたり反映されたりするのを防ぐことができます。

デフォルトでは、p4 streamはクライアントワークスペースに関連するストリームを編集します。 ストリームワークスペースを使用していない場合は、エラーをスローします。 詳細については、『Helix Coreコマンドライン(P4)ガイド』の「ストリーム」の章(特に「ストリームビューとパス」を参照してください。

ストリームの編集、衝突解決、復元を行う場合の推奨コマンドについては、『Helix Coreコマンドライン(P4)ガイド』の「ストリームを更新する」を参照してください。

ストリームのプライベート編集機能

パブリック編集したストリーム仕様を保存すると、編集内容が即時に反映されます。ただし、パブリック編集を行うと、他のユーザが行った編集内容に影響する場合があります。例えば、依存関係を変更した場合(製品コンポーネントを変更した場合など)、対応するファイルを正しく変更しないと、製品全体の構造が破損する可能性があります。

リリース2019.1以降でストリームのプライベート編集機能を使用すると、以下の操作が可能になります。

  • 特定のストリームを使用している他のユーザに影響しない方法で、そのストリームの仕様とストリームディポ内のファイルを更新する。
  • 変更をサブミットする前にその変更のテストを行い、その変更を他のユーザがテストできるように保留する。
  • ストリーム仕様の更新履歴の可視性とトラッキング性を高める(単一の不可分なチェンジリストには、ストリーム仕様に対する編集内容とそれに関連するコードの変更内容を保管できるため、こうした可視性とトラッキング性を高めることができます)。

ストリームのプライベート編集用ワークフローは、次のコマンドを使用する標準のワークフローに対応しています: p4 editp4 submitp4 revertp4 resolve。これらのコマンドで、-So-Si、または-Sxオプションを使用して、ストリーム仕様の編集を実行したりスキップしたりすることができます。

以下も参照してください。

ストリームと継承

リリース2020.2以降のp4 stream仕様には、「ParentView:」というフィールドがあります。--parentviewパラメータを仕様して、このフィールドを以下のいずれかの値に設定することができます。

  • inherit: この値を設定すると、ストリームの動作が標準的な動作になります。この場合、継承動作が暗黙的に指定されるため、継承されたPathsフィールド、Remappedフィールド値、Ignoredフィールドの値が、子ストリーム仕様内では非表示になります。
    • タスクストリームとバーチャルストリームは、常にinheritにする必要があります。
  • noinherit: この値を設定すると、Pathsフィールド、Remappedフィールド、Ignoredフィールドが、親ストリームによる影響を受けなくなります。例えば、noinheritになっているリリースストリームのビルドシステムの場合、親メインラインストリームのインポートパスを、そのリリースストリームには存在しない新しいライブラリに切り替えても、そのリリースストリームのビルドシステムは問題なく機能します。
    • リリースストリーム、開発ストリーム、メインラインストリームは、inheritにすることもnoinheritにすることもできます。
  • メインラインストリームには親ストリームが存在しないため、メインラインストリームを別のタイプのストリームに変換しない限り、inherit設定とnoinherit設定のいずれであっても影響を受けることはありません。
  • dm.stream.parentview構成可能変数により、新しく作成されたストリームがinheritnoinheritのどちらになるかが決まります。

parentviewオプション

p4 streamコマンドには、parentviewというオプションもあります。このオプションを使用して、既存のメインラインストリーム、開発ストリーム、リリースストリームをnoinheritからinheritに変換したり、inheritからnoinheritに変換したりすることができます。

  • 子ストリームをnoinheritに変換すると、inheritストリームで暗黙的に指定されているパスが明示的なパスになります。
    • --source-commentsオプションを指定すると、子ストリーム仕様内でコメントが表示されます。こうしたコメント行の先頭には「##」が指定されています。以下に例を示します。
      exclude myExclude/... ## copy from //stream/main@5
      このコメントは、パスのソースが親ストリーム仕様のバージョン5であることを示しています。
    • ストリーム仕様に、手動でコメントを追加することもできます。

ヒント
注意

2019.1よりも前のリリースの場合

2019.1よりも前のリリースでは、p4 stream editコマンドを使用して、ストリーム仕様のプライベート編集機能を使用することができました。以下に例を示します。
p4 -c aStreamClient stream edit
Stream //Ace/Main@15973 - edit stream spec default change

ただし、この場合は、ストリーム仕様に対する編集内容をチェンジリストで追跡することはできません。p4 stream editコマンドを実行すると、クライアントの現在のストリーム仕様がopened状態になり、ビューの生成に影響するフィールドの編集内容が隔離されます。仕様が作業状態になっている場合、ビューの生成に影響するフィールドに「#open」というコメントが付加されます。これは、それらのフィールドが作業状態になっていて隔離されていることをクライアントに伝えるためのコメントです。これらのフィールドに対する変更内容は、クライアントビューに影響しますが、その他のクライアントには影響しません。p4 edit -Soコマンドは、p4 stream editコマンドと同じ結果になります。

注意

リリース2021.2以降、ストリーム仕様の1対多の(反復)マッピングがサポートされるようになりました。詳細については、「フォームフィールド」と「ストリーム仕様の反復マッピングの例」でimport& Path:タイプの説明を参照してください。

ストリームとグラフディポ - .gitサフィックスとリポジトリパス

ストリームではグラフタイプのディポからリポジトリをインポートできます。ストリーム内ではインポートの内容は読み取り専用になります。以下に例を示します。

  • .gitサフィックスが必要です
  • リポジトリパスには特定のSHA-1またはrefを含める必要があります
@sha

構文:

import path/... //repo/name.git/restricted/view/path/...@sha

例:

import d3/... //repo/d3.git/...@c2e37352ac84eb8f90bc2866f715

インポートされたデータは@shaの処理時にロックされます。

@ref

構文:

import path/... //repo/name.git/restricted/view/path/...@ref

例:

import d3/... //repo/d3.git/...@refs/heads/master

または

import d3/... //repo/d3.git/...@master

同期すると、@refの現在の時刻にデータが更新されます。

グラフタイプのディポを使用する」を参照してください。

フォームフィールド

フィールド名 タイプ 説明

Stream:

書き込み可能、入力必須

ストリームの名前(永続的な識別子)およびストリームディポでのパスを、 //depotname/streamnameの形式で指定します。

注意

1つのストリームディポ内のすべてのストリーム名に、同じ数のスラッシュが 含まれている必要があります。この数は、管理者がストリームディポ仕様の StreamDepthフィールドで指定します。 異なる数のスラッシュを使用してストリームを作成しようとすると、 以下のメッセージが表示されます。

Error in stream specification. Stream streamname does not reflect depot
depth-field streamdepth.

ファイル名とエンティティに関する文字の制限に 注意してください。

Update:

読み取り専用

ストリーム仕様が最後に変更された日付。

Access:

読み取り専用

ストリームの仕様が 最後にHelixサーバコマンドによって アクセスされた日時。

Owner:

書き込み可能、入力必須

ストリームを所有しているHelixサーバユーザ またはグループ。 デフォルトは、ストリームを作成したユーザです。

Name:

書き込み可能

ストリームの名前を表示します。Stream:フィールドとは異なり、 このフィールドは変更可能です。デフォルト値は、 ストリームパスのstreamnameの部分です。

Parent:

書き込み可能

このストリームの親。ストリームのType:mainlineの場合はnoneにし、 それ以外の場合は//depotname/streamnameの形式で 既存のストリーム識別子に設定しなければなりません。

Type:

書き込み可能、入力必須

ストリームのタイプによって、想定される変更フローが決定されます。有効なストリームタイプは、mainlinedevelopmentreleasevirtualtaskです。

  • mainline

    メインラインストリームはストリームディポ内のすべてのストリームの親です。 あらゆるストリームディポには少なくとも1つのメインラインストリームが 存在しなければなりません。

  • virtual

    バーチャルストリームを使用すると、ローカルデータを保存せずに親ストリームと 子ストリームの間でマージおよびコピーを行うことができます。 データはバーチャルストリームのビューに定義されている ファイル範囲に関する制約を適用した後に、 コピー/マージ先(バーチャルストリーム以外)に送られます。

    バーチャルストリームはディポのネームスペースにファイルを持たないため、 バーチャルストリームをインポートすることはできません。

  • release

    メインラインよりも安定性の高いストリームです。 リリースストリームは親からコピーされ、親へとマージされます。

  • development

    メインラインよりも安定性の低いストリームです。開発ストリームは、親ストリームからマージされ、 親へとコピーされることが想定されます。

    注意

    デフォルトのストリームタイプはdevelopmentです。

  • task

    タスクストリームは軽量の短期的なブランチであり、バグ修正や、 ブランチデータのほんの一部しか修正しない新機能の使用に役立ちます。

    リポジトリのメタデータを最小限に抑えるには、シャドウテーブルは、 分岐(コピー)ファイルのみを追跡させます。 タスクストリームを削除またはアンロードすると、シャドウテーブルが削除されます。

    注意

    タスクストリームに関連付けられたワークスペースではすべてのブランチ済ファイルを 参照できますが、ストリームの名前空間へのアクセス権があるユーザには、 変更されたか昇格したファイルのみが可視となります。

    例えば、タスクのストリームに関連付けられていないワークスペースから、タスクストリームのチェンジリストのためにp4 describeを実行する場合、サブミットしたファイルのサブセットのみが表示されます。

    ヒント

    タスクストリームでimport+パスにファイルをサブミットすることはできません。 「import+ view_path [depot_path]」でパスタイプの説明を参照してください。

Description:

書き込み可能、任意入力

ストリームに関する説明。

Options:

書き込み可能

ストリームの動作を構成する設定を以下に示します。

  • [un]locked

    他のユーザによるストリームの編集または削除を有効/無効にします。 ロックされている場合、ストリーム仕様は削除できず、 所有者のみが変更可能です。デフォルト値はunlockedです。

  • [all|owner]submit

    ストリームの変更のサブミットを、すべてのユーザに許可するか、 所有者にのみ許可するかを指定します。デフォルト値はallsubmitです。 ownersubmitがマークされたストリームの Owner:がグループである場合、そのグループのメンバーである すべてのユーザが変更をストリームにサブミットできます。

  • [no]toparent

    当該ストリームからその親への反映が想定されるかどうかを指定します。 デフォルト値はtoparentです。

  • [no]fromparent

    親から当該ストリームへの反映が想定されるかどうかを指定します。 デフォルト値は、メインラインおよび開発ストリームはfromparent、 リリースストリームはnofromparentです。

  • mergeany | mergedown

    マージフローの制限、または他のストリームからのマージの許可を設定します。 例えば、mergeanyオプションは、警告なく子から親へのマージを 可能にします。

virtualタイプのストリームには、フローオプションとしてnotoparentnofromparentを 設定する必要があります。

mainlineタイプのストリームでは、フローオプションは無視されます。

ParentView:  

親ストリームからビューを継承するかどうかを指定します。

inherit noinherit

ParentViewオプションの値を「inherit」に設定すると、Pathsフィールド、 Remappedフィールド、Ignoredフィールドが影響を受けます。各フィールドから作成されたビューは、ストリームのフィールドと、 ストリームの各祖先から継承した一連のフィールドから構成されます。 この場合、継承動作が暗黙的に指定されるため、 継承されたPathsフィールド、Remappedフィールド、Ignoredフィールドの値が、 現在のストリーム仕様内では非表示になります。

ParentViewの値が「noinherit」の場合、Pathsフィールド、Remappedフィールド、Ignoredフィールドが、 ストリームの祖先による影響を受けることはありません。 子ビューは、Pathsフィールド、Remappedフィールド、Ignoredフィールドで 指定されたものとまったく同じビューになります。

タスクストリームとバーチャルストリームの場合、ParentViewsで指定できる値は 「inherit」だけです。

 

それ以外のすべてのストリームタイプで、ParentViewsの値として「inherit」または 「noinherit」を指定することができます。

開発ストリーム、リリースストリーム、またはメインラインストリームを初めて作成すると、 --parentviewパラメータを使用してParentViewフィールドを設定できるようになります。 このパラメータで、「inherit」または「noinherit」という値を設定します。

--parentviewパラメータを指定せずに、開発ストリーム、 リリースストリーム、またはメインラインストリームを作成する場合は、 dm.stream.parentview構成可能変数により、 ParentViewフィールドのデフォルト値が決まります。

ストリームの作成後に、ストリーム仕様を編集してParentViewフィールドの値を 変更することはできません。代わりに、p4 stream parentviewコマンドを使用して、 ストリームのParentViewフィールドの値を変更する必要があります。 詳しくは、p4 help streamcmdsコマンドの出力情報を参照してください。

Paths:

書き込み可能

ファイルがどのようにストリーム構造に組み込まれるかを定義します。 以下の形式を使用して、パスを指定します。

path_type view_path [depot_path]

ただし、path_typeは単一のキーワード、 view_pathは頭にスラッシュが付かないファイルパスです。 任意指定のdepot_pathは、//で始まるファイルパスです。

デフォルトのパスはshare ...です

有効なパスタイプを以下に示します。

  • share view_path

    指定されたファイルは、親ストリームからのまたは親ストリームへの同期、 サブミット、反映が可能です。

  • isolate view_path

    指定されたファイルは、親ストリームからのまたは親ストリームへの同期および サブミットが可能ですが、反映は実行できません。

  • import view_path [depot_path]

    指定されたファイルは、親ストリームからのまたは親ストリームへの同期が可能ですが、 サブミットまたは反映は実行できません。 view_pathは親ストリームのビューにマッピングされるか、 (任意指定の)depot_pathにマッピングされます。

    depot_pathには、チェンジリスト指定子が含まれる場合があります。 ストリームに関連付けられたクライアントワークスペースには、 このディポパス内の変更のリビジョンまたはそれ以下の リビジョンのみが表示されます。例えば、ディポパスに//depot/import/...@1000を指定すると、 1000より大きいチェンジリストのリビジョンは、 ほとんどのコマンドで非表示になります。

    注意

    チェンジリスト番号の代わりに、自動ラベル定義を使用できます。

    特定のストリームワークスペースのチェンジリストの制限内容は、 ChangeViewと呼ばれる読み取り専用のクライアント ワークスペース仕様フィールドで表示されます。

  • import+ view_path [depot_path]

    ストリームディポの外部からストリームへパスをマッピングする場合は、 標準のimportパスと同様に機能しますが、標準のimportパスとは異なり、 import+パス内のファイルに対して変更をサブミットすることができます。

  • ストリーム仕様の1対多の反復マッピングを実行する場合は、import& <view_path> <depot_path>を使用します。これはimportパスに似ていますが、複数のimport&パスで1つの<depot_path>を複数の<view_path>にマッピングできる点が異なっています。この方法でマーキングされたファイルは、読み取り専用ファイルになります。<depot_path>が必要になります。import&機能を使用するには、リリース2021.2以降のHelix Coreサーバが必要になります。この機能では、グラフディポ閉じた HelixサーバにGitリポを保存するために使用されるグラフタイプのディポ。「Helix4Git」と「クラシックディポ」も参照してください。はサポートされていません。

  • exclude view_path

    指定されたファイルは、親ストリームからのまたは親ストリームへの同期、 サブミットまたは反映を実行できません。

デフォルトでは、ストリームは親ストリームの構造を引き継ぎます (メインラインは親がないため除外)。

パスは子ストリームのビューから引き継がれます。子ストリームのパスでは引き継がれたビューの ダウングレードは可能ですが、アップグレードすることはできません。 (例えば、子ストリームではsharedパスをisolatedパスにダウングレードできますが、 親ストリームでパスがisolatedとして定義されている場合、 子ストリームでパスをsharedに指定してフルアクセスに戻すことはできません)

注意

path_typeが以下のようになっている場合にのみ、depot_pathが機能します。

  • import

  • import+

  • import&

ヒント

バーチャルストリームでパスをインポートする場合は、ディポパスの引数を明示的に指定してimport view-pathを実行する必要があります。例えば、次のストリームセットを作成するとします。

>Stream //project1/mainQ mainline none 'mainQ'
Stream //project1/devQ1 development //project1/mainQ 'devQ1'
Stream //project1/devQ1-virt virtual //project1/devQ1 'devQ1-virt'

バーチャルストリームを除くすべてのストリームでPaths: share ...を使用すると、以下のようになります。

パス:

>import foo/...
share foo/src/libs/lib1/...

バーチャルストリームのfooパスには親のパス//project1/devQ1が引き継がれず、クライアントビューには次のように表示されます。

//project1/mainQ/foo/... foo/...

このため、次のようなより明示的な構文を使用することをお勧めします。

import foo/... //project1/devQ1/foo/...

注意

類似したファイルタイプをストリーム仕様内で管理するには、以下のように、パス定義の最後のスラッシュ(/)の後ろにワイルドカード(「...」と「*」)を指定することをお勧めします。

share ... 
  isolate BIN/....CLASS
  isolate BIN/....exe
  import imports/lib/*.a //depot/3rd_party/lib/*.a 
  import imports/lib/*.dll //depot/3rd_party/lib/*.dll
  import imports/src/*.h //depot/3rd_party/src/*.h
  exclude doc/....fm

Remapped:

書き込み可能、任意入力

ワークスペースファイルの位置を再割り当てします。 反映元パスとワークスペース内での位置を指定するには、 次の構文を使用します。

view_path_1 view_path_2

view_path_1」と「view_path_2」は、 Helixサーバのビューパスです(パスの先頭に スラッシュとワイルドカードを指定しないでください。 また、ワイルドカードをパスに含めないでください。ただし、 パスの最後であれば、ワイルドカードを指定することができます)。 例えば、ファイルがローカルのProjectXフォルダに同期されるようにするには、 次のようにマッピングし直します。

... projectX/...

Remapped:フィールドでは行の順序に意味があります。 複数行が同じファイルに再割り当てされている場合、後の行が優先されます。 再割り当ては子ストリームおよび関連付けられたワークスペースに引き継がれます。

Ignored:

書き込み可能、任意入力

両方で無視するファイル名またはディレクトリ名のリスト。

  • 対象ストリームのクライアントのクライアントビュー
  • ストリームとその親ストリーム間のマージ操作とコピー操作で使用される生成後のブランチ仕様。

以下に例を示します。

/tmp # ignores files named "tmp"
/tmp/... # ignores directories named "tmp"
.tmp # ignores file names ending in .tmp

Ignored:フィールド内の行は順不同です。 無視されるファイルおよびディレクトリは、子ストリームのクライアントビューに 引き継がれます。

オプション

-d streamname

ストリームを削除します(そのストリームのストリーム仕様も削除されます)。

以下の要素によって参照されているストリーム仕様を削除することはできません。

  • 任意の子ストリームのストリーム仕様

  • 任意のストリームクライアントワークスペースのストリームパス

  • 任意のクライアントワークスペースの仕様内のStream:フィールド

ストリーム仕様を削除する場合、以下のような動作になります。

  • 対象のストリームに関連付けられたファイルは削除されません。p4 obliterateコマンドを実行した場合にのみ、ファイルが完全に削除されます。

  • 削除されたストリームに関連付けられているファイルは変更されません。

  • 同じストリーム仕様を同じストリーム名で再作成することができます。これにより、もう一度ファイルにアクセスできるようになります。

-f

管理者は-fオプションを使用して、他のユーザが所有しているロックされた ストリームを削除または変更することが可能です。

-i

ストリーム仕様を標準入力から読み取ります。

-o

ストリーム仕様を標準出力に書き出します。デフォルトでは、 クライアントワークスペースに関連するストリームを出力します。 stream@change引数を渡した場合、 Helixサーバは、指定された時点の チェンジリストのストリームのバージョンを使用します。

警告

制限事項: このオプションを使用する場合は、ストリームパスに対するlistアクセス権以上の権限が必要になりますが、プロテクションテーブル内のそれ以外の項目については、マイナス符号(-)を含めてすべて無視されます(通常は、マイナス符号によって操作がブロックされます)。

-o -v

冗長オプション。このストリーム用に自動生成されたクライアントビューを含めます。

-c changelist# @changelist指定子がストリーム名に含まれている場合、 最新(または開いている)バージョンではなく、変更時点の(サブミットされた) ストリームが表示されます。

-P parent

新しいストリーム仕様を作成する際にストリームの親を指定します。 (このオプションは既存のストリーム仕様には効果がありません)

-t type

新しいストリーム仕様を作成する際に、 ストリームのタイプを、mainlinedevelopmentreleasetaskvirtualのどれかに指定しなければなりません。

parentview

メインラインストリーム、開発ストリーム、リリースストリームでp4 stream parentviewコマンドを使用して、 parentviewフィールドの値を「inherit」または「noinherit」に設定することができます。

注意

ワークスペースクライアントのストリーム仕様が作業状態になっている場合、p4 stream parentviewコマンドを使用してparentviewフィールドの値を設定することはできません。

このコマンドを実行するとストリーム仕様が作業状態になるため、 ParentViewフィールドの値を変更することができます。Pathsフィールド、Remappedフィールド、Ignoredフィールドの値を変更することもできます。

ストリーム仕様に対する変更内容は、サブミットするまで パブリックな変更になることはありません。ParentViewの変更をサブミットすると、その変更内容がストリーム仕様の 反映履歴に取り込まれます。

-c 編集用にストリーム仕様をオープンすると、そのストリーム仕様が 指定のチェンジリスト番号に関連付けられます。
-n 変更内容をプレビュー表示します。
-o 変更後のストリーム仕様を表示します。

--inherit

ParentViewフィールドの値を「inherit」に変更します。 ストリーム仕様をnoinheritのParentViewに変換するときに発生した、 Pathsフィールド、Remappedフィールド、Ignoredフィールドに対する変更が保持されます。

ParentViewプロパティの値が「inherit」になっているストリームの クライアントビューとブランチビューは、その祖先のPathsフィールド、 Remappedフィールド、Ignoredフィールドによる影響を受けます。

--noinherit

ParentViewフィールドの値を「noinherit」に変更します。 また、祖先のストリーム仕様内の対応するフィールドからパスのコピーまたは マージを行うと、Pathsフィールド、Remappedフィールド、 Ignoredフィールドが変換されます。

ParentViewプロパティの値が「noinherit」になっているストリームの クライアントビューとブランチビューは、その祖先のPathsフィールド、 Remappedフィールド、Ignoredフィールドによる影響を 受けることはありません。

--source-comments ParentViewフィールドの値を「inherit」から「noinherit」に変更したときに 祖先のストリーム仕様からコピーまたはマージされたPaths行、 Remapped行、またはIgnored行にインラインソースコメントを追加します。 このコメントにより、祖先の反映元ストリーム仕様と、その仕様の最新バージョンの チェンジ番号が指定されます。また、特定の行を反映先ストリーム仕様内に コピーまたはマージするかどうかも指定されます。
resolve

p4 stream resolveは、作業開始以降にストリーム仕様にサブミットされた 変更の衝突を解決します。 新しい変更の衝突が解決されるまで、ストリーム仕様に変更をサブミットすることはできません。

p4 resolve -Soコマンドは、p4 stream resolveコマンドと 同じ結果になります(p4 help editを参照)。

-as

p4 stream resolveで、「安全な」衝突解決を行います。 マージが必要なフィールドはスキップされます。

-am

p4 stream resolveで、マージによる衝突解決を行います。 衝突するフィールドはスキップされます。

-af

p4 stream resolveで、衝突するテキストフィールドを 強制的に連結します。

-at

p4 stream resolveで、theirsの受け入れを強制し、 yoursを上書きします。

-ay

p4 stream resolveで、yoursの受け入れを強制し、 theirsを上書きします。

-o -v

p4 stream resolveで、衝突解決が必要なフィールドを プレビューします。

-n

p4 stream resolveで、マージに使用されるbaseを出力します。

revert

p4 stream revertコマンドを実行すると、作業状態の仕様に対する保留中の変更が元に戻ります。これにより、クライアントが、サブミット後の最新バージョンのストリームに戻ります。

p4 revert -Soコマンドは、p4 stream revertコマンドと同じ結果になります。

g-opts

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

使用上の注意点

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

適用外

適用外

  • open: すべてのオプションで必要

  • list: -oオプションを指定する場合に必要

  • =openstreamspecを指定すると、ストリーム仕様が作業状態になります。「ストリーム仕様の権限」を参照してください。

タスクストリームは、一時的に使用するためのストリームです。変更を親ストリームに昇格してタスクストリームの使用を終了したら、 そのタスクストリームを削除してください。

p4 stream -t mainline //streams/product1

ディポ名と同じストリーム内にメインラインストリームが作成されます。

p4 stream -t development -P main //projectX/bruno-dev

メインラインをブランチすることにより、プロジェクトX用の開発ストリームを作成します。

p4 stream parentview -n --noinherit

ParentViewフィールドの値を「noinherit」に設定するときに、変更内容をプレビュー表示します。

p4 stream parentview -c 1234 --source-comments --noinherit

ストリーム仕様をチェンジリスト1234に関連付け、ストリームをnoinheritに変換し、以下のようなパスのソースに関する自動コメントを取得します。

## merge from //str/dev2@25

ストリーム仕様の反復マッピングの例

ストリーム仕様の反復マッピングを行う場合の例としては、タスクストリーム内でファイルを編集し、複数のプラットフォーム(dirWindowsdirLinux)に対する拡張機能を指定する際に、プラットフォームに依存しないサードパーティ製ライブラリ(Lib1)をread-onlyのライブラリとして含めるというケースが考えられます。

>Paths:
share ...
import& dirWindows/Lib1 //other/main/dirA/fileA
import& dirLinux/Lib1 //other/main/dirA/fileA

および

>View:
//sroot/child5/... ...
&//other/main/dirA/fileA dirWindows/Lib1
&//other/main/dirA/fileA dirLinux/Lib1

関連コマンド

ストリームを一覧表示する

p4 streams

ストリームのテンプレートを編集する p4 streamspec

ストリームディポを作成する

p4 depot