使用BeyondCompare比较文件夹下的文件时,相同的文件内容,但显示为不相同

主要原因是:

两个文件行尾标题不一致而导致的,一个是PC,一个是Unix
在这里插入图片描述
解决办法:

随便比较文件夹中的两个文件,点击规则,去掉比较行尾(pc/mac/unix)选项,点击确认,回到文件夹比较界面,刷新一下
使用BeyondCompare比较文件夹下的文件时,相同的文件内容,但显示为不相同_第1张图片
使用BeyondCompare比较文件夹下的文件时,相同的文件内容,但显示为不相同_第2张图片
原因剖析:
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下有这样三种比较的规则:

  1. CRC

  2. 二进制

  3. 基于规则

下面这样的一篇文章很好地解释了这样的问题Files are the Same, but Beyond Compare Says They are Different

通过这样的两部设置就可以来比较这样的文档:

  1. 找到会话 --> 会话设置
  2. 在"比较"标签下选择"基于规则的比较"
    本文出自:https://www.yuanmas.com/info/okzVR6NRzv.html

你可能感兴趣的:(工具)