代码之家  ›  专栏  ›  技术社区  ›  hythlodayr

Perforce:防止Perforce更改文本文件格式

  •  14
  • hythlodayr  · 技术社区  · 16 年前

    有没有办法告诉Perforce不要使用文本文件,而不将文件类型设置为二进制?或者,除此之外,有没有办法告诉Perforce客户端使用不同的二进制文件?二进制通常是不可取的,因为我失去了区分的能力。

    澄清一下:如果我在Windows客户端上编辑并更改*.txt文件,换行符将按照DOS格式具有CR+LF。但如果我在Unix客户机上进行P4同步,它将只有LF。我需要Perforce保持格式不变,无论Perforce客户端位于何处。

    也就是说,我确实有一个解决办法:将文件类型设置为二进制;和/或创建一个将文本文件设置为“文本”的分支,并定期将其集成到将文本文件设置为“二进制”的主线中。但是这是一个非常复杂的工作,对于一个非常简单的问题来说。

    性能 Windows客户端2006.2。

    5 回复  |  直到 15 年前
        2
  •  5
  •   raven    13 年前

    当同步到不同的平台时,Performce客户端可以正确处理行结束,前提是 LineEnd 在客户端上正确设置选项。也许你的设定错了?打开您的客户端规范并设置

    退房 this KB article

    行尾。虽然Perforce商店 服务器将文件归档到中的磁盘上 操作系统的本机行 Windows,在Unix上为LF),所有行尾 被规范化为Unix样式的LF 内部性能的线端 服务器操作,如p4同步、p4 提交和p4差异。

    确定线端的处理方式 通过一个全局选项为每个 客户端规范。同步文本文件时 到具有p4同步的客户端工作区,或 将它们提交回Performce服务器 对于p4 submit,它们的行尾是 clientspec LineEnd部分。

        3
  •  3
  •   Dave Knight    15 年前

    我刚刚遇到了完全相同的问题,但有一个更好的解决方案,它不涉及更改客户机规范(这些规范是国际性的,并且不是我有写访问权的所有规范)。

    我们的所有客户都是Windows PC,但Cygwin包含在Performce Depot中。Cygwin是Unix的Windows实现,要求文本文件使用LF作为行尾。

    二进制+D ,它使用与文本文件相同的RCS增量修补程序存储,但没有自动行结束转换。

    我可以在本地工作区和仓库之间成功区分这些“文本”文件。

        4
  •  2
  •   Permaquid    16 年前

    p4 add 和 -t here . 这里给出的例子是 p4 add -t binary file.pdf .

        5
  •  -5
  •   Permaquid    16 年前

    为文件指定不同的扩展名。