チームメンバーの1人(異なる地域にいる)がP4の変更をチェンジリスト1234で保留しました。
今、どのファイルが変更されているかを見たい場合、どのような変更がありますか?これを行うにはどうすればよいですか?
チームメンバーが行った変更を確認するために使用するP4コマンドは何ですか?
p4 describe -S 1234
がトリックになります。 describeのドキュメント を参照してください。
ファイルの内容を表示するには、ファイルをワークスペースにunshelveします(同僚が取り組んでいる同じプロジェクトのワークスペースがあると仮定します)。
p4 change
(結果は2345など)で新しい(空の)チェンジリストを作成し、p4 unshelve
(- doc )を使用して、変更されたファイルをワークスペースに取得します。
p4 unshelve -s 1234 -c 2345
ワークスペースで変更されたファイルが不要になった場合は、p4 revert -c 2345
できます。
GUIを使用して、「保留」に進み、ユーザー以外のすべてのフィルターを削除します。ここには、他の開発者のIDを入力します。そこから、ファイルを棚に置いたものを含む彼女のチェンジリストを見ることができるはずです。 Shelved Filesアイコンを右クリックして、Unshelveを選択します。棚上げを解除しようとしているファイルを含むワークスペースをアクティブにする必要があります。
UIクライアントを使用して、Ctrl + Gを押します。ダイアログウィンドウが表示されます。コンボボックスでチェンジリストを選択し、チェンジリストの番号を入力します。
チェンジリスト123456が保留中のチェンジリストであると仮定しましょう。前述の答えとして、ファイルをリストする方法は、そのチェンジリストに関連付けられているp4 describe -s <changelist>
コマンドを使用する方法です。そのようです:
$ p4 describe -s 123456
Change 123456 by john.doe@JohnsBranch on 2013/10/24 15:38:10 *pending*
[Shelving my changes for Jane.]
Fix memory corruption caused by uninitialized pointer.
Affected files ...
... //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 edit
問題のファイルがわかったら、対応するワークスペースなしでファイルを比較する方法がいくつかあります。方法#1はp4 print
を使用することです:
$ p4 print -q //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 > /tmp/old
$ p4 print -q //depot/branches/JohnsBranch/kernel/vm/pageutils.c@=123456 > /tmp/new
$ diff /tmp/old /tmp/new # Or use kdiff3, tkdiff, etc.
...
<diff output here>
もう1つの方法は、p4 diff2
を使用することです。
$ p4 diff2 //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 //depot/branches/JohnsBranch/kernel/vm/pageutils.c@=123456
...
<diff output here based on Perforce server's diff algorithm>
どちらの方法も、選択したスクリプト言語に簡単に組み込むことができます。
jhwistのソリューションは、ファイルの差分を表示する場合に適しています。
保留されたファイルのみを表示する場合は、p4 describe -sS 1234
。
小文字のs
は、出力にファイル差分を含めることを制限します。
ファイルの実際のコンテンツを表示する場合は、次を使用できます。
p4 print <file>@=<shelved_change>
@ =は保留された変更を確認することを意味し、@は変更を確認することを意味します。
P4V UIで、選択します
Search - > Go To
次に、チェンジリストのタイプを選択し(あなたのケースでは「保留中のチェンジリスト」)、チェンジリスト番号を入力して「OK」をクリックします。
ファイルのリストのみ ChangeList内(シェルフ、保留中、または送信済みCL)で、追加データなしで表示したい場合、結果をgrepします。
p4 describe -S 12345 | grep -oP '(?=//).*(?=#)'