Perforce 带有奇怪行尾的源代码文件

Perforce 带有奇怪行尾的源代码文件,perforce,line-endings,Perforce,Line Endings,我注意到,新签约团队提交的一些.Net代码有奇怪的行结尾。当我对文件进行十六进制转储时,我看到每行以2个回车(0d)和1个换行(0a)结束 在VisualStudio中查看时,似乎每个代码行后面都有一个空行,这看起来非常奇怪 这是什么原因造成的?是不是有点奇怪?这可能是由Perforce引起的吗?(我通过同步Performce工作区获得了代码) 我以前唯一一次看到非标准的行尾是当人们从网页、电子邮件或聊天窗口复制/粘贴代码时。这可能是原因吗?如果他们提交了Windows样式(CRLF)行结尾,但

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

在VisualStudio中查看时,似乎每个代码行后面都有一个空行,这看起来非常奇怪

这是什么原因造成的?是不是有点奇怪?这可能是由Perforce引起的吗?(我通过同步Performce工作区获得了代码)


我以前唯一一次看到非标准的行尾是当人们从网页、电子邮件或聊天窗口复制/粘贴代码时。这可能是原因吗?

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


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

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


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

Performance处理这些事情的方式真的是这样吗?因为其他CVSE已经能够以非破坏性的方式处理混合行结尾至少十年了。@Taschi,git在这方面肯定不是没有罪恶感的。这可能只是一个很难解决的问题,那就是Perforce如何处理事情?因为其他CVSE已经能够以非破坏性的方式处理混合行结尾至少十年了。@Taschi,git在这方面肯定不是没有罪恶感的。这可能只是一个难题