2013-02-19 4 views
5

現在のクライアント仕様のデポで最新のチェンジリストを入手したいと思います。これは、私のワークスペースでp4 syncを実行した場合に同期させる変更になります。現在のクライアント仕様のデポで最新のPERFORCEチェンジリストを取得する方法

私はp4 changes -s submitted -m1 -c [client-name]を試してみましたが、を介してに送信された最新の変更が返されます。

Doing p4 changes -s submitted -m1 //depot/path/...が機能しますが、デポのパスを調べるためにクライアント仕様を照会する必要はありません。また、複数のマッピングがある場合は、その意味を理解する方法がわかりません。

私が紛失している簡単な方法があるようです。

EDIT

私はクライアントの仕様を照会する必要がなかったが、受け入れ答えで指摘したように、私はファイルパスとしてクライアントのスペックルートを使用することができ、ビューを見てする必要はありませんでしたマッピング。 P4Pythonを使用して

最終的な解決策:

# Get client 
clientspec = p4.fetch_client() 
root = clientspec["Root"] 

# Get latest changenum in client mapping 
changes = p4.run("changes", "-s", "submitted", "-m1", root + "/...") 
changenum = changes[0]['change'] 
+0

'p4 changes -s submitted -m 1'(パスなし)は適切ではありませんか? – jamesdlin

+1

@jamesdlin - いいえ、それは私のクライアント仕様にマップされていないいくつかのデポ・パスかもしれない、サーバー上の最新のチェンジリストを提供します。 – dwikle

答えて

1

私はあなたがそのローカルルートを見つけるためにあなたのクライアントの仕様を照会する必要があるとしていると思います。あなたはおよそAltRootsを心配する必要がない場合、これは可能性があります。bashで

p4 changes -s submitted -m 1 "$(p4 client -o | grep "^Root:" | cut -f 2)/..." 

を。デポ・パスの代わりにローカル・クライアント・ルートを使用すると、複数のマッピングの問題を回避できます。

関連する問題