web-dev-qa-db-ja.com

perforce変更リストによって変更されたすべてのファイルをリストする方法

特定の変更リストがあり、コマンドラインから、その変更リストの一部であったすべてのファイルを一覧表示します。どうすればいいですか?

30
coffee

それが describe コマンドです。特定のチェンジリストを説明するには、p4 describe <changelist number>

更新:

ファイル名のみが必要な場合は、 ファイル コマンドと-Fオプションを使用して、出力形式をオーバーライドできます:p4 -Ztag -F "%depotFile%" files @=<changelist>

-Fオプションの詳細については、 http://www.perforce.com/blog/130826/fun-formatting を参照してください。

42
Mike O'Connor

ser114245 は最良の回答を提供しましたが、コメントのみでした。可視性を高め、少し改善するための答えとして追加しています。

変更12345の場合、これは、p4コマンド

p4 files @=12345

この出力のみを提供します

//depot/file1#3 - delete change 3 (text)
//depot/file2#3 - edit change 3 (text)
//depot/file5#1 - add change 3 (text)

各ファイルに関する余分な情報を削除する場合は、コマンドラインのツールを使用してその出力を処理する必要があります。標準的なunixy環境を想定すると、次のように単一のsedコマンドを使用できます

p4 files @=12345 | sed s/#.*//

望ましい結果を得るために

//depot/file1
//depot/file2
//depot/file5

現在受け入れられている答え マイクによる

p4 describe 12345

これにより、出力にこの余分な詳細がすべて表示されます

Change 12345 by day@client1 on 2013/06/21 00:25:28

    Some example changes

Affected files ...

... //depot/file1#3 delete
... //depot/file2#3 edit
... //depot/file5#1 add

Differences ...

==== //depot/file2#3 (text) ====

1c1
< This is file 2
---
> This is file 2 - edited

Doug's answer によって改善されました。grepとawkを使用してノイズを除去し、ファイルを変更したままにしますが、コマンドは非常に長くなります。

p4 describe -s 12345 | grep '^\.\.\.' | awk '{print $2}'

私はここで与えられた解決策がよりきれいだと思います。

34
Day

マイク・オコナーの答えも私を助けてくれました。

変更されたファイルのリストを取得するだけでは、これほど簡単ではないでしょうか?

p4 describe -s {change number} | grep '^\.\.\.' | awk '{print $2}'

それは私が使用するつもりです。

7
Doug

チェンジリストがまだ保留中の場合は、p4 openedまたはp4 opened -c <changeListNumber>特定の(未送信の)チェンジリスト番号。

公式ドキュメント から:「保留中のチェンジリストで開いているファイルを一覧表示します。」

4
Richard

p4変更-o

最後にファイルのリストがあります。