Beyond Compare 使用笔记

一、前言


1、介绍

Beyond Compare (简称:BC,下同)是一款很经典也很强大的文件/文件夹对比工具(后来也更新了同步合并等新功能)。

在鄙人读大学的时候,被老师推荐,一用就爱不释手到今。市面上后来出现了很多类似的软件,但都不如这款强大。

官网:https://www.scootersoftware.com/

2、环境

OS:MacOS
BC:v4.2.9

早期 BC 是只有 Windows 版的,后来才出了 MAC 版,喜大普奔。

3、使用背景

这次我做的项目分 A 和 B,A 项目的大部分代码跟 B 是一样的(有一些地方不一样)。两个项目因为在不同的 git 库中,所以也不好使用 git 命令来同步。但实际开发情况是,先把 A 项目做好,测试 ok,再把 A 项目的代码(跟 B 项目相同需求的地方)转到 B 项目上,于是采用 BC 来进行代码的(一次性)迁移。

二、功能 —— 文件对比


这一章只介绍文字比较

还支持更多对比格式:

  • 表(excel or csv)
  • Microsoft Word
  • 图片
  • 十六进制
  • 注册表
  • 可执行文件(例如.exe和.dll)
  • MP3
  • 等等

1、对比结果的种类

  • 相同
  • 左边独有
  • 右边独有
  • 差异行

后三种都属于差异

2、差异的种类

差异分为:

  • 重要差异
  • 不重要差异

3、差异的标识

(1)差异的位置显示(缩略图)

2021-04-07-00-55-58

  • 重要差异 —— 用红色表示
  • 不重要差异 —— 用蓝色表示
(2)差异的集中显示

2021-04-07-00-56-08

【最佳实践】推荐把上下文按钮打开:

2021-04-07-01-07-30

4、不重要差异

(1)不重要差异有哪些?
  • 前导空格
  • 嵌入的空白
  • 尾随空白
  • 字符大小写
  • 独有行
  • 比较行终止符(PC/Mac/Unix)
  • 等等

重要差异就不赘述了,因为不属于不重要差异的就是重要差异。

可以通过 规则->重要,修改不重要差异:

2021-04-07-00-56-21

【最佳实践】(上图)默认“字符大小写”是没有勾选上的,但我觉得我需要这个。

(2)看不见的不重要差异 —— 空白

空白分为:

  • 空格
  • TAB
  • 回车

① 空白在 BC 的编辑器里表示为什么?

如下图红框,从左到右的符号依次为 空格、TAB、回车

2021-04-07-00-56-52


② 让看不见的差异可以看见:

2021-04-07-00-57-00

(3)隐藏不重要差异

原理:把不重要差异视为相同

2021-04-07-01-07-55

5、差异的修改

(1)方法一

直接点原文左侧的剪头,选择向右覆盖还是向左覆盖

2021-04-07-00-57-09

(2)方法二

光标定位到具体 x 行,窗口底部会出现这一行的对比(默认为“文本细节”,可以在“视图”里改成别的细节),可以点击左侧的两种剪头,来进行向右覆盖向左覆盖

2021-04-07-00-58-20


【最佳实践】用上下跳转差异的剪头,来快速修改:

2021-04-07-01-00-06

6、忽略差异

2021-04-07-00-59-43

注意 忽略差异 和 隐藏不重要差异 的区别。

7、导出差异

会话 -> 文本比较报告

可以选择报告布局和输出格式:

2021-04-07-00-59-56

8、其他操作

(1)对齐方式

如下图,可以强制左边的某一行对应到右边的某一行:

2021-04-07-01-12-09

9、不足

识别不了内容一样,但是中间换行的(但是其他的不可见符号可以,例如空格,TAB)。

2021-04-07-01-00-29

三、功能 —— 文件夹对比


1、对比的对象

  • 文件夹
  • 文件

可以在规则里修改对比的对象。

2、对比结果的种类

文件夹和文件存在几种情况:

  • 存在且相同
  • 存在但是不同(这就回到了 “第二章 文件对比” 的内容)
  • 不存在

3、差异的标识

  • 存在且相同 —— 灰色
  • 存在但是不同 —— 红色
  • 不存在 —— 紫色

4、判断文件(夹)是否相同

(1)操作一 —— 根据规则

规则分:

  • 快速测试:对比文件(夹)的元信息
  • 需要打开的文件:对比文件(夹)的内容

默认规则是不打开文件,而是直接通过快速测试来对比。

这会导致明明我文件内容是一样的,但是却标红表示文件不同。或者文件内容不同,但是却显示相同。

2021-04-07-01-00-40

【最佳实践】

  • 在 快速测试 里,把 比较时间戳 关掉,开启 比较文件名大小写
  • 在 需要打开的文件 里,把比较内容打开,然后打开 比较内容,选择 二进制比较

2021-04-07-01-00-47

这样设置后,相同的文件会以“=”显示,不同的文件会以“≠”显示:

2021-04-07-01-00-56

(2)操作二 —— 比较内容

在具体文件(夹)上 右键 -> 比较内容,可以自定义比较方式:

2021-04-07-01-01-03

(3)判断文件(夹)相同的方法

1、CRC
CRC (循环冗余校验) 是一个文件内容的数字编码。如果两个文件的CRC不同,那么它们的内容肯定不同。反之如果CRC相同,那么它们的内容很可能相同(但不确定)

2、二进制
比 CRC 更准确,但也更耗时。

5、差异的修改

(1)方法一 —— 直接操作

针对文件夹和文件:

  • 复制
  • 移动

2021-04-07-01-01-12

(2)方法二 —— 详细操作

只针对文件:

双击文件,打开 二、文件对比 一样的界面,不赘述了。

6、注意点

这些是文件对比没有,而文件夹对比才有的功能。

(1)刷新和完全刷新

工具栏的刷新只是刷新当前,而 “编辑”->“完全刷新” 是刷新所有。

(2)已忽略和排除

已忽略 文件对比 里也有,而 排除 仅在 文件夹对比 里有,是隶属于 过滤 功能中的。

过滤 隶属于 “规则” 设置里。

2021-04-07-01-01-22

7、其他操作

二、文件对比 一样,不赘述了。

四、功能 —— 同步


上面的 文件夹对比,要一个一个文件(夹)的去看、去修改,太麻烦了,可以用同步,快速操作

同步基于 文件夹对比 功能,雷同的就不赘述了。

1、入口

  • 方法一:直接点主页的文件夹同步
  • 方法二:先进文件夹对比,然后选 “会话 -> 同步基文件夹”

2、对比规则

二、文件夹对比 一样。

3、同步规则

(1)针对每个文件(夹)的同步规则
  • 独自离开
  • 复制左边到右边
  • 复制右边到左边
  • 删除左边
  • 删除右边
(2)针对每个文件(夹)的同步标识

2021-04-07-01-01-40

如上图,箭头为 复制,红叉为 删除,什么都没有为 独自离开。

(3)操作一 —— 预设(快速设置)

2021-04-07-01-01-46

会以 BC 预设好的规则,分配给每个文件(夹)。


预设类型分两大类:更新镜像

① 更新

更新的意思为从左边复制较新和独有的文件/文件夹到右边,分为这几种预设类型:

  • 更新左边
  • 更新右边
  • 更新两者

例如更新右边(此次我用的是这个)的具体规则为:

2021-04-07-01-01-53

② 镜像

镜像的意思为更改右边以便它拥有和左边一样的文件/文件夹,分为这几种预设类型:

  • 镜像左边
  • 镜像右边

例如镜像右边的具体规则为:

2021-04-07-01-01-58

(4)操作二 —— 高级预设(普通设置)

2021-04-07-01-02-03

提供给你修改 BC 预设好的规则的权利,去分配给每个文件(夹)。

(5)操作三 —— 单独调整(精细设置)

你可以在文件(夹)上 右键,针对这个文件(夹)单独调整同步规则:

2021-04-07-01-02-10

(6)不用同步

如果对某个文件(夹)不想用这些同步规则,那就双击它,进入 ”文件对比“ 功能,操作同上面的介绍。修改好后,再右键这个文件,点击”排除“,让他不要参与后续的同步操作。

(7)实施同步

点击 ”立即同步“ 按钮:

2021-04-07-01-02-16

五、高级功能


1、支持压缩文件对比

会把压缩文件当成文件夹的形式。

2、支持在线对比

① FTP:

  • FTP
  • SFTP
  • FTPS

【拓展】SFTP FTPS 区别:

SFTP 和 FTPS 都是为 FTP 连接加密,协议非常相似。一个是借助ssh加密,一个是借助ssl协议加密。

SFTP 用的更广泛,因为它适合防火墙。SFTP 只需要通过防火墙打开一个端口(默认为 22)。此端口将用于所有 SFTP 通信,包括初始认证、发出的任何命令以及传输的任何数据。而 FTPS 通过严格安全的防火墙相对难以实现,因为 FTPS 使用多个网络端口号。每次进行文件传输请求(get,put)或目录列表请求时,需要打开另一个端口号。因此,必须在您的防火墙中打开一系列端口以允许 FTPS 连接,这可能是您的网络的安全风险。

② 云存储:

  • WebDAV
  • Amazon S3
  • Microsoft OneDrive
  • Dropbox
  • Subversion

3、跟 Git 集成

可以设置成为 Git 的 difftool 或 mergetool 的默认工具。

待写。

4、导入 / 导出设置

当你在本机给 BC 做了很多自定义的设置后,换了新电脑想要迁移之前的设置,这个会很好用。

2021-04-07-01-02-22

5、文件合并 / 文件夹合并

最高支持三路合并

待写

posted @ 2020-05-14 19:41  小蒋不素小蒋  阅读(8157)  评论(0编辑  收藏  举报

ICP证:沪ICP备20014317号