我想在P4软件仓库中的指定文件夹路径中读取文件夹和文件结构,而不同步它。有可能吗?
答案 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中文件的“目录”只是文件路径中最后一个路径分隔的标记。因此,它必须做额外的工作才能将其文件集切成特定于目录的列表。