主要原因是:
两个文件行尾标题不一致而导致的,一个是PC,一个是Unix
解决办法:
随便比较文件夹中的两个文件,点击规则,去掉比较行尾(pc/mac/unix)选项,点击确认,回到文件夹比较界面,刷新一下
原因剖析:
Beyond Compare(简称BC) 是一款功能强大的文件比较工具,平时的代码合并时经常使用这个工具进行。在一次代码比较的过程中发现了这样的现象:虽然source文件的内容相同,但是BC显示两文件有差异。
我们注意到这两个文件的编码和文件大小不同,但是文本内容却是一模一样的。那么原因是什么呢?到底该怎样比较这样的source文件呢?
首先来解释下为什么内容相同但是文件大小不同的问题,这个问题的根本原因就是不同操作系统下回车(Carriage Return – CR)换行(Line Feed – LF)的处理不同:
Windows用CR+LF 来表示一行的结束;
unix 、Mac OS X 用LF来表示一行的结束;
Mac OS 至 Mac OS9用CR来表示一行的结束。
提示:更多信息请参考new line
也就是说同样的多行文字,在windows下存储表示的文本文件就要比其他操作系统(如 Linux,Mac)下的文件大,大多少呢?文件有多少行就大多少字节。
就拿上面的例子来说,文件一共有9行,因此Windows下的文件就要比Linux下的文件大9字节。
知道了原因,我们应该怎样使用BC来比较这样来自不同操作系统的文件呢?
BC下有这样三种比较的规则:
-
CRC
-
二进制
-
基于规则
下面这样的一篇文章很好地解释了这样的问题Files are the Same, but Beyond Compare Says They are Different
通过这样的两部设置就可以来比较这样的文档:
- 找到会话 --> 会话设置
- 在"比较"标签下选择"基于规则的比较"
本文出自:https://www.yuanmas.com/info/okzVR6NRzv.html