如何在不同步的情况下通过 p4python 读取 depot 的文件夹结构?

How to read depot's folders structure by p4python without syncing?

我想读取 P4 depot 上指定文件夹路径内的文件夹和文件结构而不同步它。可能吗?

要获取指定仓库路径的子文件夹,应该使用此代码

p4.run("dirs", path+'*')

结果将是单项词典列表

[{'dir': '//Depot/path/dirname1'}, {'dir': '//Depot/path/dirname2'}]

为了获取指定仓库路径中包含的所有文件,应该使用:

p4.run("files", path+'*')

结果将是一个字典列表,每个文件一个:

[{'rev': '1', 'time': '1465999632', 'action': 'add', 'type': 'text', 'depotFile': '//Depot/path/dirname1/filename.txt', 'change': '999999'}]

另请注意,指定的路径必须以斜杠结尾 /

感谢@SilentMonk @BryanPendleton 给我提示

请注意,如果您打算填充整个目录树,运行 使用 Dirs 和 Files 递归地遍历目录树是低效的。

如果您需要目录下所有文件的文件信息,包括其子文件,只需发出 "files" 命令以包含整个树(即路径/...到路径/*)。

我怀疑这是因为 P4 服务器内部没有目录的概念。 P4 中文件的 "directory" 只是文件路径中的最后一个 path-separated 标记。因此,它必须做额外的工作才能将其文件集分割成 directory-specific 列表。