Kev*_*vin 6 .net perforce p4api.net
我在这里阅读了另一篇文章,我可以将文件从 Perforce depot 下载到本地磁盘,而无需客户端工作区。为了进一步扩展,我需要将仓库目录中的所有文件(文本和二进制文件)下载到我的本地磁盘中。这是正确的 p4 命令吗?
p4 打印 //depot/dir1/...
我有几个问题:
我正在使用 p4api.net 库。这段代码会做吗?
public void GetFiles(string DepotFilePath)
{
P4Command cmd = new P4Command( _repository, "print", true,
String.Format( "{0}/...", DepotFilePath ));
results = cmd.Run();
if (results.Success)
{
//do something here
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定它会将文件转储到本地磁盘的哪个位置?
提前谢谢你的帮助。
不需要特定于平台的脚本工具的简单解决方案:
p4 client -df TEMP_CLIENT
p4 -c TEMP_CLIENT --field View="//depot/dir1/... //TEMP_CLIENT/..." client -o | p4 client -i
p4 -c TEMP_CLIENT sync -p
p4 client -d TEMP_CLIENT
Run Code Online (Sandbox Code Playgroud)
这会将所有文件/目录下载//depot/dir1到您的当前目录中。如果要指定不同的目录,请在指定--field "Root=C:\Some Path"的同一位置添加到第一个命令View。
p4 print将把内容输出到标准输出(参见优秀手册)。因此,按顺序回答您的问题:
//depot/path/to/file#5 - edit change 430530 (text),后跟该特定文件的内容。如果您确实不想为您的任务创建客户端工作区(为什么?),那么您必须执行如下操作:
p4 files使用例如(手册)获取文件列表p4 print每个文件p4 print到本地磁盘上的文件,遵循软件仓库中的目录结构。