3

该团队正在使用 subversion 作为版本控制系统。我喜欢吉特。所以我用 git-svn 克隆了它。

autocrlf 设置:

$ git config core.autocrlf
true

因此,我更改的文件将以 LF 作为行尾。

当文件被其他成员使用 SVN 签出时,即使在 Windows 上,它们也会以 LF 作为行尾。

将 autocrlf 设置为 false 可以解决问题。它告诉 git 不要将 CRLF 更改为 LF。

可以通过配置subversion客户端解决问题吗?

4

2 回答 2

1

subversion 和 git 都有 CRLF 转换设置。它们可以设置为任何值,但应始终如一地设置。由于在这种情况下您想在项目中使用非标准工具,因此您有责任确保不会给其他团队成员带来问题。似乎 Subversion 中没有启用该设置(它被设置为属性,因此记录在那里的存储库中)所以现在关闭并将core.autocrlf所有你搞砸的文件转换回它们应该采用的格式!

就我个人而言,我什至不会考虑打开 autocrlf。我处于类似情况,我的经验是所有系统上都必须有特定格式的文件,例如 shell 脚本(cygwin 需要unix格式)和 MSBuild 项目(必须是 windows 格式)以及可能以任何格式保留的文件,如 C++、Java、python、perl 和任何其他来源。因此,将 CRLF 转换设置为执行您需要的操作实际上是相当麻烦的,因为您需要告诉它所有异常,并且绝对没有任何帮助(前提是您不尝试在普通记事本中进行编辑;大多数其他包括 Notepad++、PSPad、Visual Studio、ViM 等在内的编辑器可以理解任何格式)

于 2013-05-22T06:46:04.060 回答
1

如果 svn eol 属性设置为“本机”,则始终使用适合平台的 EOL 签出文件。因此,例如,Windows 上的结帐将具有 CR-LF,而与保存到存储库的实际行结尾无关。几年来,我们一直在使用它进行跨平台开发。

于 2013-05-22T11:23:15.667 回答