如何获取当前客户端规范的库中的最新Perforce更改列表

时间:2013-02-19 18:29:02

标签: perforce

我想在我的当前客户端规范的仓库中获取最新的更改列表。如果我在工作区中执行了p4 sync,这实际上就是同步的更改。

我尝试p4 changes -s submitted -m1 -c [client-name],但会返回通过我的客户提交的最新更改。

执行p4 changes -s submitted -m1 //depot/path/...会有效,但我不想查询客户端规范来确定软件仓库路径是什么。另外,如果有多个映射,我就不知道如何理解它。

似乎必须有一种简单的方法来做到这一点,我错过了。

修改

我确实需要查询客户端规范,但正如接受的答案所指出的,我可以使用客户端规范root作为文件路径,而不需要查看视图映射。

使用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']

1 个答案:

答案 0 :(得分:1)

我认为您将不得不查询您的客户端规范以查找其本地根目录。如果您不需要担心AltRoots,那么可能是:

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

在bash中。使用本地客户端root而不是depot路径可以避免多个映射的问题。