p4 stream

概要

ストリーム仕様を作成、編集、または削除します。

構文


p4 [g-opts] stream [-P parent] -t type name
p4 [g-opts] stream [-f -d] [-o [-v]] [-P parent] -t type name
p4 [g-opts] stream -i [-f]

解説

p4 streamコマンドによってPerforceストリームを管理することができます。ストリームとは、変更の構造とフローを制御するための戦略を持つ、階層構造からなるブランチです。ストリームの階層は、ユーザがストリームに割り当てるタイプによって指定されるストリームの安定性に基づきます。開発(development)ストリームは最も安定性が低く(最も変化しやすい)、メインライン(mainline)ストリームは比較的安定性が高く、リリース(release)ストリームは非常に安定しています。仮想(Virtual)ストリームを使用すると、ローカルデータを保存せずに親ストリームと子ストリームの間でコピーおよびマージを行うことができます。タスク(Task)ストリームは軽量の短期的なブランチであり、バグ修正や、ブランチデータのほんの一部しか修正しない新機能の使用に役立ちます。

ストリームの内容はユーザがマッピングするパスによって定義されます。デフォルトでは、ストリームはその親(ブランチ元となったストリーム)と同じ構造を持ちますが、その構造をオーバーライドして、例えば特定のファイルを他のストリームにサブミットするか反映することができないようにすることができます。

ストリームの詳細については、『P4ユーザーズガイド』を参照してください。

フォームフィールド

フィールド名

タイプ

解説

Stream:

書き込み可能、入力必須

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

Update:

読み取り専用

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

Access:

読み取り専用

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

Owner:

書き込み可能、入力必須

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

Name:

書き込み可能

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

Parent:

書き込み可能

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

Type:

書き込み可能、入力必須

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

  • mainline

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

  • virtual

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

  • release

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

  • development

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

  • task

    タスクストリームは軽量の短期的なブランチであり、バグ修正や、ブランチデータのほんの一部しか修正しない新機能の使用に役立ちます。このタイプのストリームを使用すると、ブランチ(コピー)されたファイルは後に消去される一連のシャドウテーブルに記録されるため、レポジトリには最小限のメタデータのみが保持されます。タスクストリームに関連付けられたワークスペースではすべてのブランチ済データを参照できますが、ストリームの名前空間へのアクセス権があるユーザには、変更されたか昇格したデータのみが可視となります。

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

Description:

書き込み可能、任意入力

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

Options:

書き込み可能

以下に示す、ストリームの動作を構成する設定:

  • [un]locked

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

  • [all|owner]submit

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

  • [no]toparent

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

  • [no]fromparent

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

  • mergeany | mergedown

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

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

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

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+パス内のファイルには変更をサブミットできます。

  • exclude view_path

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

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

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

depot_pathpath_typeimportまたはimport+である場合にのみ機能することに注意してください。

Remapped:

書き込み可能、任意入力

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

view_path_1 view_path_2

ただし、view_path_1およびview_path_2はPerforceビューパスです(最初のスラッシュおよび最初または途中にあるワイルドカードは省略し、最後のワイルドカードは許容されます)。例えば、ファイルがローカルのProjectXフォルダに同期されるようにするには、以下のようにマッピングし直します。

... projectX/...

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

Ignored:

書き込み可能、任意入力

クライアント・ビューで無視されるべきファイル名またはディレクトリ名のリスト。例:

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

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

オプション

-d streamname

ストリーム仕様を削除します。ストリーム仕様は、子ストリームまたはストリームのクライアント・ワークスペースによって参照されている場合には削除できません。ストリームを削除しても、その中のファイルは削除されませんが、変更をそのストリームにサブミットできなくなります。

-f

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

-i

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

-o

ストリーム仕様を標準出力に書き出します。

-o -v

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

-P parent

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

-t type

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

g-opts

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

使用上の留意点

ファイル引数にリビジョン指定子を使えるか?

ファイル引数にリビジョン範囲を使えるか?

最低限必要なアクセスレベル

適用外

適用外

open

  • その名前が示すとおり、タスクストリームは短期的な使用が意図されています。変更を親ストリームに昇格させてタスクストリームの使用を終了したら、タスクストリームを削除してください。

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

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

関連コマンド

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

p4 streams

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

p4 depot