如何在进行同步之前检索特定流的大小
How to retrieve the size of a specific stream before doing sync
我正在编写脚本,需要在同步到本地硬盘之前查询特定流的大小。本地未同步文件夹为空。
我知道有 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
那么如何在实际进行同步之前向服务器查询大小?
提前感谢您的任何反馈!
您需要使用通配符来引用一组多个文件(包括一个depot目录路径):
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
我正在编写脚本,需要在同步到本地硬盘之前查询特定流的大小。本地未同步文件夹为空。 我知道有 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
那么如何在实际进行同步之前向服务器查询大小?
提前感谢您的任何反馈!
您需要使用通配符来引用一组多个文件(包括一个depot目录路径):
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