文件中的行结尾,由svn检出并由git-svn提交

时间:2013-05-22 02:48:17

标签: svn git-svn

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

autocrlf设置:

$ git config core.autocrlf
true

所以我改变的文件会将LF作为行尾。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

如果svn eol属性设置为“native”,则始终使用适合该平台的EOL检出文件。因此,例如,Windows上的checkout将具有CR-LF,而不管保存到存储库的实际行结尾。我们几年来一直将它用于跨平台开发。