ブランチの作成後、ブランチ間に変更を伝播しなければならない場合があります。 例えば、リリースブランチでバグを修正した場合、その修正内容をメインのコードラインに組み込む必要があります。 選択した変更をブランチされたファイル間で伝播するには、p4
merge
コマンドとp4 resolve
コマンドを次のように使用します。
p4 merge
コマンドを発行してファイルの衝突解決をスケジュールします。p4 resolve
コマンドを発行し、反映元ファイルから反映先ファイルに変更を伝播します。
変更を個別に伝播するには、マージファイルを編集するか、マージプログラムを使用します。 クライアントワークスペースにある反映先ファイルに変更が加えられます。
Example ブランチされたファイル間で変更を伝播する
ブルーノは、Jamプロジェクトのリリース2.2ブランチにおけるバグを修正したため、その修正内容をメインのコードラインに反映させる必要があります。 ブルーノはホームディレクトリで次のように入力します。
$ p4 merge //JamCode/release/jam/2.2/src/Jambase //JamCode/dev/jam/Jambase
次のメッセージが表示されます。
//JamCode/dev/jam/Jambase#134 - merge from ////JamCode/release/jam/2.2/src/Jambase#9
これで、ファイルの衝突解決がスケジュールされました。 ブルーノがp4
resolve
と入力すると、標準マージダイアログが画面に表示されます。
//JamCode/dev/jam/Jambase - merging depot/release/jam/2.2/src/Jambase#9 Diff chunks: 0 yours + 1 theirs + 0 both + 0 conflicting Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) [at]:
ここでファイルの衝突を解決できます。 完了すると、ブルーノのワークスペースのファイルが結果ファイルによって上書きされます。 結果ファイルを含むチェンジリストをディポにサブミットする必要があります。
p4 merge
コマンドまたはp4 copy
コマンドを実行するには、反映先ファイルに対する書き込み権限(Helix Corewrite
)と、反映元ファイルに対する読み取り権限(read
)が必要です。 (Helix Core権限の詳細については、『Helixバージョニングエンジン管理者ガイド: 基本』を参照してください。)
デフォルトでは、p4 merge
コマンドによってクライアントワークスペースで新規作成されたファイルは、サブミットしないと編集できません。 新たにマージされたファイルをサブミットする前に編集するには、衝突を解決した後、p4 edit
コマンドを発行します。
マージされるリビジョンの範囲に削除済みのリビジョンが含まれる場合(例えば、ファイルがディポから削除された後に再度追加された場合)は、削除済みリビジョンの反映方法を-Di
オプションで指定できます。 詳細については、『P4コマンドリファレンス』を参照してください。