【问题标题】:Perforce changed line endingsPerforce 改变了行尾
【发布时间】:2011-04-14 13:46:49
【问题描述】:

我在 Mac 上有一个项目并将其上传到 perforce 服务器。当我从 PC 获得项目时,所有行尾都已更改,现在它无法在 PC 上编译。有没有办法像以前一样自动更改行尾,或者我必须再次从 Windows 提交所有项目?有没有办法让我的文件保持原样?我真的不想在我的源文件中进行愚蠢的修改。

谢谢!

编辑:

这和perforce有关,我只是在MAC上编辑了10-20个文件来制作一个多平台项目来编译。其余 140k 文件没有改变,甚至没有在 Mac 上打开(它们是由编译器打开来编译它们的:P)。如果我在 PC 上复制项目,则行尾正常。

【问题讨论】:

  • 我不认为 perforce 与它有任何关系。你说你的项目在 Mac 上。可能您的 MAC 文本编辑器使用您签入的 MAC 行结尾保存了文件以强制执行。现在,如果您在 Windows 上同步它们,它们将保持不变 - 以原始 Mac 格式显示。您需要考虑您喜欢哪种格式 - Windows 或 Mac?然后适当地签入您的文件。
  • 行尾没问题,项目是在PC上创建的,在Mac上复制只是为了编译。我从未更改过 Mac 上的大部分文件。
  • @d-live 我现在遇到与 OP 类似的问题。看来 Perforce 确实会更改您的行尾本身,并且根据其设置,无论是在您提交文件时还是在您将文件取出时,它都会这样做。

标签: perforce


【解决方案1】:

文本文件的行尾由您的客户端规范设置控制。您需要确保正确设置了客户的“LineEnd”值。一般来说,这应该留给“本地”,这应该为您使用的任何操作系统做正确的事情。

也就是说,根据您最初上传文件时在 Mac 上设置此值的方式,我想在将这些文件同步到您的 PC 时可能会出现一些问题。

我会检查以确保您的客户将 LineEnd 设置为“本地”。 Perforce 知识库站点here 上有一个注释,它更深入地讨论了Macintosh 客户端的正确设置。这可能也是一个开始,以确保您在 Macintosh 上正确配置了一些东西。

【讨论】:

  • Perforce 的行尾处理完全被破坏了。它的所有模式都没有执行 perforce 文档中描述的内容。在许多情况下,行为是将“CRLF”变成“CRCRLF”
  • 我试图总结(令人困惑的)文档,请帮助审查:stackoverflow.com/questions/10721294/…
【解决方案2】:

是的,你可以。为您的两个客户端使用 Unix 行尾将告诉 perforce 客户端保持文件与提交方式相同。你也可以在服务器上设置一个触发器来强制它,参考我对这个问题的回答:

Setting Perforce line endings

【讨论】:

    【解决方案3】:

    这实际上与 perforce 没有任何关系,尽管它确实解决了问题。

    http://kb.perforce.com/article/63

    UNIX、PC 和 Mac 机器上的行尾都是不同的。 这就是你所看到的。通过任何介质在 PC 和 Mac 之间传输相同的文件会产生相同的结果。如果你想以另一种方式解决这个问题,你可以在 Mac 上设置你的编辑器来保存带有 windows 行结尾的文件。

    我错了“Perforce 使用 Unix 风格的 LF 行尾处理所有文本文件”。我会检查 p4 客户端 LineEnd 值(我认为应该在两台机器上都是本地的)并确保您使用的是 p4 >= 2001.1

    的版本

    【讨论】:

    • 这和perforce有关,我只是在MAC上编辑了10-20个文件来制作一个多平台项目来编译。其余 140k 文件没有改变,甚至没有在 Mac 上打开(它们是由编译器打开来编译它们的:P)。如果我在 PC 上复制项目,则行尾正常。
    • 是的,对不起。只需阅读“Perforce 使用 Unix 风格的 LF 行尾处理所有文本文件”。您使用的是 perforce 版本 > 2001.1 吗?您是否检查过您的 p4 客户端“LineEnd”值是多少?
    • 我的 -1 是因为这个答案中唯一正确的部分是“UNIX、PC 和 Mac 机器上的行尾都不同”。其余的都是错误的。有一个 Perforce 设置会导致它处理所有带有 unix 结尾的文本文件,但也有其他设置。
    猜你喜欢
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2015-08-28
    • 2013-01-07
    • 2012-03-02
    相关资源
    最近更新 更多