【问题标题】:How to get the latest Perforce changelist in the depot for the current client spec如何在当前客户端规范的仓库中获取最新的 Perforce 变更列表
【发布时间】:2013-02-19 18:29:02
【问题描述】:

我想在仓库中为我当前的客户端规范获取最新的更改列表。如果我在我的工作区中执行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']

【问题讨论】:

  • p4 changes -s submitted -m 1(没有路径)不合适吗?
  • @jamesdlin - 不,它提供了服务器上最新的更改列表,这可能是我没有映射到我的客户端规范的一些仓库路径。

标签: perforce


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2019-07-17
    • 2022-11-03
    相关资源
    最近更新 更多