使用 perforce 命令将目录从 perforce 服务器递归复制到本地计算机(不创建工作 space)?
Copy a directory recursively from perforce server to local machine (without creating working space) using perforce command?
我可以使用此命令将文件从远程 Perforce 服务器复制到我的本地计算机
p4 print -o <output_filename> <remote_filename>
但是,我这里有两个问题。
首先,我必须手动指定我的输出文件名。
其次,我无法打印出目录中的所有文件和子目录。
我想做的是将特定目录从 Perforce 服务器递归复制到我的本地计算机目录,而不在我的本地计算机上创建工作区。
简单回答:放弃不在本地计算机上创建工作区的要求,并在本地计算机上创建工作区。 创建工作区 sync -p
和删除工作区 比重新实现 p4 sync
.
更容易、更快捷
p4 --field "View=//depot/path/... //TEMPCLIENT/..." --field "Root=C:\output_path" client -o TEMPCLIENT | p4 client -i
p4 -c TEMPCLIENT sync -p
p4 client -d TEMPCLIENT
硬性回答:实现您自己的视图映射逻辑。使用 p4 files //depot/path/...
获取文件列表,然后使用正则表达式将每个 depot 文件映射到本地文件,然后 运行 对每一对使用 p4 print
命令。它看起来像:
p4 -F %depotFile% files //depot/path/... | (some gnarly piece of awk/sed/perl that takes "depotFile" as input and produces "print -o localFile depotFile" as output) | p4 -x - run
我可以使用此命令将文件从远程 Perforce 服务器复制到我的本地计算机
p4 print -o <output_filename> <remote_filename>
但是,我这里有两个问题。 首先,我必须手动指定我的输出文件名。 其次,我无法打印出目录中的所有文件和子目录。
我想做的是将特定目录从 Perforce 服务器递归复制到我的本地计算机目录,而不在我的本地计算机上创建工作区。
简单回答:放弃不在本地计算机上创建工作区的要求,并在本地计算机上创建工作区。 创建工作区 sync -p
和删除工作区 比重新实现 p4 sync
.
p4 --field "View=//depot/path/... //TEMPCLIENT/..." --field "Root=C:\output_path" client -o TEMPCLIENT | p4 client -i
p4 -c TEMPCLIENT sync -p
p4 client -d TEMPCLIENT
硬性回答:实现您自己的视图映射逻辑。使用 p4 files //depot/path/...
获取文件列表,然后使用正则表达式将每个 depot 文件映射到本地文件,然后 运行 对每一对使用 p4 print
命令。它看起来像:
p4 -F %depotFile% files //depot/path/... | (some gnarly piece of awk/sed/perl that takes "depotFile" as input and produces "print -o localFile depotFile" as output) | p4 -x - run