当前位置:  开发笔记 > 运维 > 正文

如何在SVN操作期间将所有行结尾转换为CRLF,LF或CR

如何解决《如何在SVN操作期间将所有行结尾转换为CRLF,LF或CR》经验,为你挑选了2个好方法。

所以,你们都准备好做一个大的SVN提交并且因为你的某些文件中的行结尾不一致而爆炸.有趣的是,您正在查看跨越数十个不同深度文件夹的1,000个文件.

你是做什么?



1> Cebjyre..:

我不认为预提交挂钩实际上可以更改正在提交的数据 - 它可以禁止提交,但我不认为它可以为您进行转换.

听起来你想要将属性 'svn:eol-style'设置为'native' - 这会自动将换行符转换为你平台上使用的任何东西(使用'CRLF','CR'或'LF'来获取那些不管你的操作系统想要什么).

您可以使用自动属性,以便您创建的所有未来文件都将设置此属性(自动道具在客户端处理,因此您必须为每个用户设置此属性).


svn:eol-style = native的问题是如果你有不同的行结尾它会失败.

2> David W...:

首先是清理一切.你在Windows或Unix/Linux/Mac上吗?

如果您使用的是Unix/Linux/Mac,可以尝试这样的方法:

$ find . -type f -name "*.java" -exec dos2unix {}\;

如果你有dos2unix你的盒子就好了.它不在我的Mac或我们拥有的六台Linux机器中.好像我们没有安装这个特定的包.幸运的是,它很容易找到.

小心使用它,因为你不想破坏二进制文件.

一旦清理了所有内容,就应该将svn:eol-style属性放在文件上.将其设置为本机将使用正确的行结束为您的计算机签出文件,但将它们存储在Unix行结束格式中.其他三个选项是Unix的"LF",Windows的"CRLF"和Mac OS X Mac的"CR".大多数人发现"本土"能够发挥出最佳效果.Native的唯一问题是它不会检查具有混合行结尾的文件,而"LF"和"CRLF"将会.

一旦你这样做,你应该得到一个预提交钩子,允许你在特定文件上强制行结束.然后,教你的开发人员使用autoproperties.预提交挂钩将阻止任何提交,除非将属性放在文件上开发人员将其提交拒绝一次或两次,并且他们将自己设置自动属性.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有