这是我目前遇到的场景:
- 程序员 A(使用 Mac 版本的 Dreamweaver)编辑文件 client.php 并将该文件提交到 Project Foo 存储库的生产分支
- 程序员 B(使用 Windows 版本的 Dreamweaver)编辑文件 client.php 以修复该文件中的错误。然后他执行
cp clientInfo.php ../prod-branch/clientInfo.php
将错误修复从他的工作副本带到生产分支。 - 程序员 B 然后执行
svn diff ../prod-branch/clientInfo.php
来查看 svn 所说的他的更改只是为了发现 svn 说他已经更改了文件中的每一行!
现在,这就是我认为正在发生的事情:
当文件被 Mac 编辑时,Mac 上的 Dreamweaver 将所有 Windows 换行符替换为 Mac 换行符,以便它在 Dreamweaver 中可读。简而言之,Dreamweaver 已更改文件中的每一行。现在,一旦提交完成,svn 就会看到文件的每一行 都已更改,并将这一事实标记下来。当 Windows 程序员进行更改并且换行符再次更改时,svn 再次认为每一行都已更改。
我的问题是:我们如何才能防止这种情况发生?我知道无法挽回已经造成的损害,但我想防止这种情况在未来发生。
最佳答案
您需要在所有文本文件上使用“svn:eol-style”属性。通常将其设置为“ native ”就足够了
关于windows - 当 PC 程序员更新 Mac 程序员最近提交的文件时,SVN diff 将所有代码行标记为新代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2194620/