【问题标题】:Getting Perforce client workspace handling automated使 Perforce 客户端工作空间处理自动化
【发布时间】:2016-11-08 05:26:52
【问题描述】:

我正在尝试通过它的命令行实用程序自动访问 Perforce。 使用p4 client 创建一个新的客户端工作区并且同步工作正常。

现在我允许用户覆盖 userhostportstreamrevision 。 从文档中,我不清楚何时必须执行哪些命令以使客户端工作区文件与已编辑的客户端工作区规范同步。

我目前所做的是曾经p4 client是通过搜索

Client mymachine not changed

如果消息不出现,请在标准输出中执行p4 sync -f

有没有更好或更理智的方法来做到这一点?

我尝试执行例如p4 sync -s 希望删除本地数据会失败,但似乎我误解了这个选项?

【问题讨论】:

  • 在我看来,您正在努力工作。如果您编辑您的客户端工作区规范,您应该只需要一个普通的p4 sync。您不需要传递 -f-s 标志。您能否提供一个更准确的示例说明为什么简单的 p4 sync 不适合您?

标签: perforce


【解决方案1】:

我不清楚这与您关于工作区的问题有何关系:

现在我允许用户覆盖用户、主机、端口、流、 修订。

因为其中只有一个是工作区的属性。我暂时不理会该声明,但如果它很重要,我鼓励您发布后续文章,澄清您所说的“覆盖”每个属性的含义。

你的问题:

从文档中我不清楚何时必须执行哪个 使客户端工作区文件与已编辑的文件同步的命令 客户端工作区规范。

如果客户端View更新了,你需要做的就是:

p4 sync

如果客户端 Root 更新,或任何其他全局影响文件写入工作空间的选项,例如 allwritemodtime,您将需要重新同步整个客户端。理想情况下,这是通过以下方式完成的:

p4 sync #none

以其中一种方式更改工作区之前。另一种选择是执行以下顺序:

p4 sync #none
p4 sync
p4 clean

以确保所有内容都被重写,并从工作区中删除任何落后者(例如,由于根已更改但仍映射在客户端视图中而“同步 #none”无法找到的任何内容)。

我尝试执行例如p4 sync -s 希望它会失败 本地数据被删除,但似乎我误解了这个选项?

删除本地数据是与编辑客户端规范不同的问题,但您想要的命令是p4 clean 而不是p4 sync——您使用sync 告诉服务器您希望它向您发送新的修订版,您使用clean 使您的工作空间与服务器已经发送给您的内容保持一致。

推荐/支持的工作流程是始终使用 p4 命令来操作工作区中的只读文件——因此,如果要删除本地文件,请使用 p4 sync FILE#none(将其从工作区中删除但不影响仓库)或p4 delete FILE(打开它进行删除,以便在您提交时为所有人删除)。

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多