Perforce 在P4同步上替换客户端路径

Perforce 在P4同步上替换客户端路径,perforce,Perforce,我有一个引用其他文件的XML文件。我不能在此文件中使用相对路径或变量 是否可以在P4存储库中添加一个模板和一些脚本,以便在同步时生成该文件?例如,我可以根据P4客户机根的位置,使用诸如sed之类的琐碎工具来更新路径 我真的很想让它透明化,这样我就知道这个文件的版本总是正确的,并且包含实际的信息。如果您想使用动态根目录,请尝试在工作区的根路径中添加“null”(无引号),工作区的根目录将是您所在的任何目录 如果您试图创建动态工作区,您可以创建工作区的文本文件(p4 client-o>templat

我有一个引用其他文件的XML文件。我不能在此文件中使用相对路径或变量

是否可以在P4存储库中添加一个模板和一些脚本,以便在同步时生成该文件?例如,我可以根据P4客户机根的位置,使用诸如sed之类的琐碎工具来更新路径


我真的很想让它透明化,这样我就知道这个文件的版本总是正确的,并且包含实际的信息。

如果您想使用动态根目录,请尝试在工作区的根路径中添加“null”(无引号),工作区的根目录将是您所在的任何目录

如果您试图创建动态工作区,您可以创建工作区的文本文件(p4 client-o>template_worksapce.txt)并使用sed创建工作区,然后通过
p4 client-i

这就是你要找的吗?

试试:

p4 info | grep 'Client root'
或:


我想要的是更改文件内容,例如“${client.root}/tools/mymodule”将成为一个绝对路径,具体取决于客户端根位置。我倾向于将此类操作作为构建脚本的一部分,而不是“p4 sync”操作的一部分。构建的第一步是调用一些本地工具来构建所需的生成文件。构建脚本不是一个选项,因为IDE需要此文件-因此没有可靠的方法来确保运行构建。但这应该手动运行-我正在寻找一种方法,将更改推送到不知情的客户端。既然我提到了这一点,看来这是不可能的,因为这将是一个巨大的安全漏洞……我必须承认,我不清楚你的目标是什么。我认为您正在尝试设置一个环境变量,以便您的XML处理器可以通过Perforce depot文件在工作区中的绝对路径引用该文件。但现在看来,您可能希望Perforce能够在用户不运行“p4 sync”的情况下将文件推送到用户的工作区。实现后者的唯一方法是在用户机器上设置某种自动同步服务,如P4FTP。
p4 -ztag client -o | grep Root