【问题标题】:source code files with weird line endings带有奇怪行尾的源代码文件
【发布时间】:2020-06-16 06:03:56
【问题描述】:

我注意到一个新的承包团队提交的一些 .Net 代码有奇怪的行尾。当我对文件进行十六进制转储时,我看到每一行都以 2 个回车符 (0d) 和 1 个换行符 (0a) 结尾。

在 Visual Studio 中查看时,似乎每个代码行后面都有一个空行,这看起来很奇怪。

什么会导致这种情况?它是一些奇怪的 IDE 吗?会不会是 Perforce 造成的? (我通过同步 Perforce 工作区得到了代码)。

我以前唯一见过非标准行尾的情况是人们从网页、电子邮件或聊天窗口复制/粘贴代码。会不会是这个原因?

【问题讨论】:

    标签: perforce line-endings


    【解决方案1】:

    如果他们提交了 Windows 样式 (CRLF) 行结尾,但在其客户端工作区中使用了 unix (LF) LineEnd 设置,那么文件将有一个额外的 CR 作为每一行的一部分,并且 Windows 计算机将同步将它们记为 CRCRLF。这是您所看到的最可能的解释。

    解决这个问题的理想方法是让每个人都使用与他们的环境相匹配的 LineEnd(通常默认的 local 可以很好地解决这个问题),但是如果有人需要在一个单个工作区,切换到share LineEnd 选项将通过剥离所有 CR 强制在提交时对所有内容进行规范化。 (这也使得无法提交带有实际 CR 字符的文本文件,但这通常没什么大不了的——对于您不希望发生任何类型转换的文件,请使用 @987654324 @ 文件类型。)

    【讨论】:

    • Perforce 处理事情的方式是认真的吗?因为其他 CVS 已经能够以非破坏性方式处理混合行结尾至少十年了。
    • @Taschi,git 在这方面肯定不是无罪的。这可能只是一个难题
    猜你喜欢
    • 2015-07-08
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 2016-03-22
    相关资源
    最近更新 更多