【问题标题】:How do I get the Perforce file type, of a given depot path, through python?如何通过 python 获取给定库路径的 Perforce 文件类型?
【发布时间】:2020-03-09 19:09:03
【问题描述】:

我有一个内容创建工具,可以在 perforce 中更新文件。 这些文件被不一致地创建为二进制文件或文本文件。

我想获取现有 depot 文件的文件类型,因此当用户保存新修订时,它将从工具中导出正确的类型。

总是导出为文本以避免那些 p4 类型文件的文件损坏似乎太 hacky。除了较大的文件大小之外,在 perforce 中将文本文件作为二进制文件签入是否还有其他问题?

【问题讨论】:

  • 该工具是否不会默认以与现有版本相同的格式保存新版本,并且不会区分具有不同文件扩展名的不同格式? O_o
  • 因此,如果没有记错的话,有几个不同的 Python 库可用于与 Perforce 交互,而且您可能还需要分叉和解析标准输出。您的“工具”如何与 Perforce 对话?
  • @SamStafford 不,fbx 文件格式可以导出为二进制或 ascii
  • @FrankMerrow,我正在使用P4Python

标签: python perforce


【解决方案1】:

我想获取现有 depot 文件的文件类型

大多数报告文件的 Perforce 命令会将文件类型作为输出的一部分。最简单的是p4 files;如果你运行p4 files FILENAME,在输出的末尾会有一个类似(text)的文件类型。

所以当用户保存新修订时,它会从工具中导出正确的类型。

请注意,Perforce 的文件类型与您工具的文件类型概念不同!对于 Perforce,.PNG.PDF 都只是 binary

除了较大的文件大小之外,在 perforce 中将文本文件作为二进制文件签入是否还有其他问题?

二进制文件本质上是“非文本”,它将禁用所有依赖于换行符和文本字符概念的 Perforce 功能——RCS 增量存储就是其中之一,但您也不会进行行尾格式转换、差异/合并、p4 annotatep4 grep 等。

如果此工具生成的文本文件不可区分或人类可读,并且不希望它们遵守本机行尾约定(或者如果它们一开始就不能跨平台移植),那么binary 听起来是全面的正确选择。

【讨论】:

    猜你喜欢
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2011-12-29
    • 2010-10-23
    • 1970-01-01
    相关资源
    最近更新 更多