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

时间:2016-06-15 14:37:40

标签: python python-2.7 perforce p4python

我想在P4软件仓库中的指定文件夹路径中读取文件夹和文件结构,而不同步它。有可能吗?

2 个答案:

答案 0 :(得分:4)

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

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为我提供了提示

答案 1 :(得分:0)

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

如果您需要目录下所有文件(包括其子目录)的文件信息,只需发出“ files”命令以包括整个树即可(例如path / ...而不是path / *),数量级提高了)。

我怀疑这是因为P4服务器在内部没有目录的概念。 P4中文件的“目录”只是文件路径中最后一个路径分隔的标记。因此,它必须做额外的工作才能将其文件集切成特定于目录的列表。