P4V v2011.1
p4v现在做的是同步我要同步的文件夹下的所有内容。但是,在我的情况下,该文件夹可能有许多子文件夹,我可能只需要同步50个子文件夹并跳过另外50个子文件夹。由于我们不想浪费带宽来传输不需要的文件,因此不要右键单击50个子文件夹进行单独同步。是否有一种简单的方法同步仅限我工作区中的文件?
答案 0 :(得分:4)
如何编辑工作区视图以便它只指定您明确需要的文件夹,并避免使用“...”通配符递归地包含子文件夹?
答案 1 :(得分:2)
可以通过命令行使用#have
说明符。
p4 fstat -T depotFile //...#have | p4 -x – sync
p4 fstat -T depotFile //...#have
返回工作区中当前文件的软件仓库文件规范。
p4 -x – sync
获取上一个命令的输出(使用管道|
)并进行同步。
...
如果你想在P4V中使用它,你可以写一个调用WSH脚本的custom tool。
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("p4 fstat -T depotFile //...#have | p4 -x – sync");
while (oExec.Status == 0)
WScript.Sleep(100);
WScript.Echo(oExec.Status);
注意:对#have
使用上述方法不会同步任何新添加的文件。不确定这是不是你想要的。
另一种方法完全是创建一个同步所需文件规范的批处理文件。我有一个我每天早上运行同步多个分支和项目。
要创建自己的,请打开记事本,然后一个接一个地添加必要的p4 sync
命令。
p4 sync //projectA/...
p4 sync //projectB/folder1
p4 sync //projectB/folder2
...
p4 sync //projectB/folder5
最初设置的一些工作。
或强>
或许比批处理文件或脚本更好地使用两个工作区,第一个使用完整的软件仓库映射,第二个使用您想要的有限映射90%的时间。