以下是我目前遇到的情景:
cp clientInfo.php ../prod-branch/clientInfo.php
从他的工作副本到生产分支。svn diff ../prod-branch/clientInfo.php
看看svn说他的更改只是发现svn说他改变了文件中的每一行!现在,我认为这是正在发生的事情:
当Mac编辑文件时,Mac上的Dreamweaver会将所有Windows换行符替换为Mac换行符,以便在Dreamweaver中可读。简而言之,Dreamweaver已经改变了文件中的每一行。现在,一旦提交完成,svn就会发现文件的每个行都已更改,并将此事实标记下来。当Windows程序员进行更改并且换行符再次更改时,svn再次认为每个行都已更改。
我的问题是:我们如何防止这种情况发生?我知道没有办法解除已经造成的损害,但我想防止将来发生这种情况。
答案 0 :(得分:4)
您需要在所有文本文件上使用“svn:eol-style”属性。通常将其设置为“原生”就足够了
答案 1 :(得分:2)
svn:eol-style
是一个可以在存储库中集中设置的属性,应该解决您的问题。
查看Subversion书籍中的chapter on New Line Sequences。
此问题的解决方案是 svn:eol-style 属性。当此属性设置为有效值时,Subversion使用它来确定要对文件执行哪些特殊处理,以便文件的行结束样式不会随着来自不同操作系统的每次提交而翻转。有效值为:
答案 2 :(得分:2)
Dreamweaver可以选择设置它使用的换行符类型。编辑(在Mac上:Dreamweaver) - >首选项,代码格式,换行符类型。
让您的用户拥有相同的设置,并且事情应该在一起发挥得更好。当然,如果您可以将源控件设置为忽略换行符差异,那会更好。