5

現在のクライアント仕様のデポで最新の変更リストを取得したいと考えています。これは、ワークスペースで を行った場合に同期される変更と実質的に同じになりp4 syncます。

やってみましたが、クライアント経由でp4 changes -s submitted -m1 -c [client-name]送信された最新の変更が返されます。

実行してもうまくp4 changes -s submitted -m1 //depot/path/...いきますが、デポのパスが何であるかを把握するためにクライアントの仕様を照会する必要はありません。さらに、複数のマッピングがあった場合、それを理解する方法がわかりません。

私が見逃しているこれを行う簡単な方法があるに違いないようです。

編集

クライアント仕様を照会する必要がありましたが、受け入れられた回答で指摘されているように、クライアント仕様のルートをファイル パスとして使用でき、ビュー マッピングを確認する必要はありませんでした。

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']
4

1 に答える 1

1

I think you're going to have to query your client spec to find its local root. If you don't need to worry about AltRoots, then this could be:

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

in bash. Using your local client root instead of the depot path avoids the problem with multiple mappings.

于 2013-02-20T01:18:16.007 に答える