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

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

进行p4 changes -s submitted -m1 //depot/path/...可以工作,但是我不想查询客户端规范来确定仓库路径是什么。另外,如果有多个映射,我将不知道该如何理解。

似乎必须有一种简单的方法来执行此操作,而我很想念它。

编辑

我确实必须查询客户端规范,但是正如接受的答案中指出的那样,我可以将客户端规范的根用作文件路径,而无需查看 View 映射。

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

最佳答案

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

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

扑朔迷离。使用本地客户端根目录而不是软件仓库路径可以避免多重映射的问题。

关于perforce - 如何在软件仓库中获取最新的Perforce更改列表,以了解当前的客户规范,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14964772/

10-12 03:47
查看更多