Perforce改变了行结尾

时间:2011-04-14 13:46:50

标签: perforce

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

谢谢!

编辑:

它与perforce有关,我只是在MAC上编辑了10-20个文件来制作一个多平台项目来编译。剩下的140k文件没有改变,甚至没有在Mac上打开(它们是由编译器打开来编译它们的:P)。如果我在PC上复制项目,那么行结尾就可以了。

3 个答案:

答案 0 :(得分:8)

文本文件的行结尾由您的客户端规范设置控制。您需要确保正确设置客户端的“LineEnd”值。一般来说,这应该留给'本地',这对于你正在使用的操作系统应该是正确的。

也就是说,根据最初上传文件时Mac上的设置值,我认为将这些文件同步到PC时可能会出现问题。

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

答案 1 :(得分:1)

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

Setting Perforce line endings

答案 2 :(得分:0)

这与perforce没有任何关系,尽管它确实处理了这个问题。

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

UNIX,PC和Mac机器上的行结尾都不同。 这就是你所看到的。通过任何介质在PC和Mac之间传输相同的文件将具有相同的结果。您可以在Mac上设置编辑器,如果您想以另一种方式解决,可以使用Windows行结尾保存文件。

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

的版本