如何在进行同步之前检索特定流的大小

  • 本文关键字:检索 同步 perforce
  • 更新时间 :
  • 英文 :


我正在编写一个脚本,在同步到本地硬盘驱动器之前,需要查询特定流的大小。本地未同步文件夹为空。我知道有一个p4大小,我已经尝试了以下命令

p4 -u TheUserName -p ExternalServerUrl -c MyWorkspace sizes -s //Path/To/Stream -H

但它似乎报告了我的本地存储(它是空的(。所以我得到的输出是:

//Path/To/Stream 0 files 0 bytes
-H 0 files 0 bytes

那么,在实际进行同步之前,我如何查询服务器的大小呢?

提前感谢您的反馈!

您需要使用通配符来引用一组多个文件(包括仓库目录路径(:

p4 sizes -s -H //Path/To/Stream/...

请注意,如果-H在文件路径之后,它将被视为另一个文件路径,这就是为什么您的输出包含-H 0 files 0 bytes行。

另一个需要注意的重要事项是,与流名称对应的仓库路径不一定与流内容相同——如果流是虚拟流,或者如果它有import路径,那么它的一些或所有文件都位于其他仓库路径下。出于您的目的,您可能希望使用客户端路径语法,该语法将对应于工作区中的所有内容(即工作区流映射的所有内容(:

p4 sizes -s -H //MyClient/...

另一种解决方案是利用p4 sync:标记输出中的totalFileSize字段,如果本地目录不为空,也会起作用

p4 -Ztag -F "%totalFileSize% bytes (%totalFileCount% files)" sync -n -q

最新更新