テクニカルノート043  


ラベル間の変更箇所

タスク

2つのラベル間における変更箇所を知るにはどうすればよいでしょうか

解決策


ファイル名の相違

2つのラベル間でどのファイルが異なっているかを確認するには、まず、ラベルの内容(つまり、ラベルを構成するファイル・リビジョンのリスト)を 2つのテキスト・ファイルに出力します。
	p4 files //...@label > label.out
	p4 files //...@label2 > label2.out

次に、label.out と label2.out の 2つの出力ファイルを比較します。これにより、2つのラベル間(の異なるリビジョン)で変更されているファイル、および一方のラベルにあるが他方のラベルにはないファイルが表示されます。


	p4diff.exe label.out label2.out (Windows)
	diff label.out label2.out  (unix)

ファイル内容の相違

ラベルに含まれているファイルについて実際の内容の相違箇所を表示するには、次のコマンドを使用します。
	p4 diff2 //...@label1 //...@label2

この出力をファイルに送りたいと考えるかもしれませんが、ファイルが大きくなる可能性があります。

上記のコマンドは、一方のラベルには存在するが他方には存在しないファイルについて出力を生成します。その内容は次のように表示されます。
	====  - //depot/test/file#1 ====

チェンジリストの相違

label1 と label2 との間でどのチェンジリストがサブミットされたかを大まかに把握するには、各ラベルで最大のチェンジリスト番号を取得し、次にその範囲内のチェンジリストのうちラベル・ビュー内のファイルに影響を与えたものをリストします。
	p4 changes -m1 @label1       [これが200であると仮定]
	p4 changes -m1 @label2       [これが250であると仮定]
	p4 changes //labelview/...@201,@250

labelview には、ラベル仕様の"View"フィールドにリストされているパスを使用します。

label1 が適用されているファイルの中に label2 が適用されているファイルよりも新しいファイルがある一方、label2 が適用されているファイルの中にlabel1 が適用されているファイルよりも新しいファイルがある場合、または "View:" フィールドが両ラベル間で異なる場合、上記コマンドの結果は、やや不正確になります。

注意

最後に、次のコマンドは期待どおりに動作しないため、使用しないでください。
	p4 changes @label1,@label2

上記のコマンドでは、一方のラベルに存在するが他方には存在しないファイルへの変更が含まれません。したがって、追加や削除が実行されたことによって、ファイルが両方のラベルに同時にリストされていない場合や、二番目のラベルに一番目のラベルと同じかそれより大きいリビジョンが含まれていない場合、上記のコマンドでは完全にそれらのファイルが無視されてしまいます。

以下に例を示します。
	@label1 - foo#2
	@label2 - foo#1

	p4 changes @label1,@label2
	[出力結果なし]

	p4 changes @label2,@label1
	Change 17 on 2008/05/05 by marc@fasty

:ラベルが関係する場合、PERFORCE のリビジョン範囲はファイルの共通集合に作用します。

:P4V にフォルダ差分の機能が追加されたことに伴い、二つのラベルの差分を GUI で表示できるようになりました。
P4V において[ツール]>[比較]を選択し、P4V の[差分]ダイアログを開きます。[差分]ダイアログで、[リビジョンを指定]ラジオボタンを選択する前に、[1番目のパス]および[2番目のパス]に適切なパスを入力します。このラジオボタンの選択によって、ラベル仕様の名前を入力しなくても、ドロップダウンのリストからラベル名を選択できるようになります。二つのラベルを決定した後、[差分]ボタンをクリックすることによって、二つのラベルの差分を表示します。
戻る