首页/软件/Diffuse

Diffuse:开源图形化文本对比与合并工具 #

Diffuse 是什么? #

Diffuse 是一款基于 GTK 的图形化文本文件对比与合并工具,能够把任意数量的文件并排展示,用直观的配色标出每一处差异,并允许用户直接在同一窗口内完成编辑与合并。

它解决的问题非常具体:当你面对两个甚至多个版本的代码、配置文件或文档时,纯命令行的 diff 输出难以阅读,而手工比对又极易出错。Diffuse 把这些差异可视化,让用户可以用鼠标或键盘快速跳转、逐行确认、就地修改;同时它还能直接连接 Bazaar、CVS、Darcs、Git、Mercurial、Monotone、RCS 和 Subversion 等版本控制系统,拉取指定修订版本参与对比与合并。无论是代码审查、分支合并冲突处理,还是配置文件的多版本校对,Diffuse 都能提供清晰、可控的操作体验。

Diffuse 有哪些亮点特色? #

  • 任意数量的文件并排比较(n-way merge):Diffuse 不局限于传统的两方或三方合并,理论上可以同时打开任意多个文件进行并排对照,特别适合多分支、多版本代码同时比对的场景,这是许多同类工具不具备的能力。

  • 手动修正行匹配:自动差异算法并非总能理解代码结构,Diffuse 允许用户手动调整行与行之间的对应关系,让对齐结果更符合实际语义,从而得到更准确的差异视图。

  • 可直接编辑文件:差异窗口中即可直接修改内容,无需切换到别的编辑器再回到对比界面,合并冲突时可以边看边改,显著缩短处理流程。

  • 语法高亮:内置对多种编程语言与配置格式的语法高亮(更新日志中提到已初步支持 Rust 语言),让代码差异在彩色标注之上依然保持良好的可读性。

  • 广泛的版本控制系统支持:官方明确支持 Bazaar、CVS、Darcs、Git、Mercurial、Monotone、RCS 和 Subversion 八种 VCS,可直接从仓库中检索文件的指定修订版本用于比较与合并,并支持命令行传入多个 -r 参数指定多个版本。

  • 完整 Unicode 支持:无论是中文、日文还是其他非拉丁字符集,Diffuse 都能正常显示与比对,不会出现乱码错位的问题。

  • 无限次撤销:合并过程中可以放心大胆地尝试各种修改方案,随时回退到任意历史状态。

  • 便捷的键盘导航:提供快速跳转到第一处/上一处/下一处/最后一处差异的快捷键,在 macOS 上还专门适配了 ⌘ 键位,让高频操作无需离开键盘。

免费下载 Diffuse #

以下为官方提供的安装包,点击链接即可下载:

文件名 描述 大小 下载
io.github.mightycreak.Diffuse.flatpakref Diffuse Flatpak 安装引用文件(适用于 Linux 桌面) 4.0 KB 夸克网盘

提示:.flatpakref 是 Flatpak 的引用文件,安装时会自动从远端仓库拉取实际的应用程序数据,因此体积很小属于正常现象。其他平台的安装方式请参见下方「Diffuse 如何安装?」章节。

Diffuse 如何使用? #

第一步:启动与打开文件 安装完成后,从应用菜单启动 Diffuse,或直接在终端中运行命令。最常用的方式是在命令行中一次性传入待比较的文件:

diffuse file1.txt file2.txt

第二步:指定版本控制系统的修订版本 如果需要对比同一个文件在不同版本库中的历史版本,可使用 -r 参数指定修订号(新版本已支持同时传入多个 -r):

diffuse -r v1 -r v2 path/to/file

Diffuse 会自动调用对应 VCS(Git、Mercurial、Subversion 等)检索这些版本并载入界面。

第三步:阅读差异视图 打开后,文件会并排显示,差异行以不同底色高亮。窗口中间的连线表示行与行之间的对应关系,点击任意一行即可将其设为当前操作焦点。

第四步:跳转与合并 使用键盘快捷键在「第一处差异 / 上一处差异 / 下一处差异 / 最后一处差异」之间快速移动。确认某处需要采纳的内容后,可直接在窗口中编辑,或使用合并按钮把一侧的内容应用到另一侧。

第五步:手动修正行匹配 当自动对齐结果不符合预期时,可以手动拖拽或指定行与行的匹配关系,让差异视图重新排列,直到符合代码的真实结构。

第六步:保存结果 合并完成后保存文件即可。所有编辑操作都支持无限次撤销,误操作可随时回退。

Diffuse 的常见问题? #

Diffuse 是否免费?可以商用吗? Diffuse 完全免费且开源,采用 GPLv2 许可证发布。这意味着你可以自由使用、修改和分发它;但如果基于它发布衍生作品,需要遵循 GPLv2 的相应条款。

Diffuse 支持哪些版本控制系统? 官方支持 Bazaar、CVS、Darcs、Git、Mercurial、Monotone、RCS 和 Subversion 八种版本控制系统。需要注意的是,SVK 的支持已在 GNOME 45 对应的版本中被移除,如果你仍在依赖 SVK,请使用较旧的发行版。

Diffuse 可以同时比较三个以上的文件吗? 可以。Diffuse 的核心特性之一就是支持任意数量文件的并排比较(n-way merge),并不限定于常见的两方或三方对比。

为什么下载的安装包只有几 KB? 因为提供的是 Flatpak 引用文件(.flatpakref),它只是一个指向远端仓库的索引文件,真正的程序数据会在安装过程中自动下载,所以文件本身很小。

Diffuse 有 Windows 版本吗? 根据官网调研资料,Diffuse 是基于 GTK/GNOME 技术栈开发的应用,官方维护的安装方式主要面向 Linux(Flatpak 运行时已更新至 GNOME 49),同时更新日志中记录有 macOS 移植版本,官方资料未提及 Windows 官方安装包。Windows 用户如需使用,可参考社区自行构建的方案(参考社区常见反馈)。

运行 Diffuse 需要什么环境? 从源码运行需要 Python 3.10 或更高版本以及 GTK 3 相关依赖,构建系统使用 Meson(0.55 及以上)。如果通过 Flatpak 安装,运行时会一并提供所需依赖,普通用户无需手动配置。

Diffuse 如何安装? #

Linux(推荐:Flatpak) #

  1. 确认系统已安装 Flatpak。若未安装,可先通过发行版包管理器安装 Flatpak 并添加 Flathub 源。

  2. 下载本页提供的 io.github.mightycreak.Diffuse.flatpakref 引用文件到本地。

  3. 在终端中执行以下命令安装:

    flatpak install io.github.mightycreak.Diffuse.flatpakref
    
  4. 安装完成后,可通过应用菜单启动,或执行 flatpak run io.github.mightycreak.Diffuse 启动。

Linux(从源码构建) #

  1. 准备依赖:Python 3.10+、GTK 3、Meson 0.55+、Ninja。

  2. 克隆官方仓库:git clone https://github.com/MightyCreak/diffuse.git

  3. 进入目录后使用 Meson 配置并编译安装:

    meson setup build
    meson compile -C build
    meson install -C build
    
  4. 详细依赖清单与开发者安装说明可查阅官网文档中的 Developers 章节。

macOS #

官网更新日志中记录了 macOS 移植版本及对应的开发环境搭建说明。macOS 用户可参考官方文档中的开发者设置(Developers setup)部分自行构建,或关注项目仓库的发布动态。官方资料未提供现成的 .dmg 安装包说明。

注意:安装前请确认系统架构与运行时版本匹配。使用 Flatpak 方式安装时,首次安装会自动下载 GNOME 运行时,耗时取决于网络状况。

Diffuse 如何卸载? #

Linux(Flatpak 方式) #

  1. 在终端中执行卸载命令:

    flatpak uninstall io.github.mightycreak.Diffuse
    
  2. 如需连同应用数据与配置一并清除,可执行:

    flatpak uninstall --delete-data io.github.mightycreak.Diffuse
    
  3. 若不再需要 Flatpak 运行时,可执行 flatpak uninstall --unused 清理无用的运行时组件。

Linux(源码安装) #

  1. 若仍保留构建目录,可在其中执行:

    ninja -C build uninstall
    

    或使用 Meson 对应的卸载命令。

  2. 若构建目录已删除,请手动移除安装路径下的 diffuse 可执行文件及相关桌面入口文件。

macOS #

  1. 退出 Diffuse 应用。
  2. 将应用程序包从「应用程序」文件夹拖入废纸篓(或使用启动台删除)。
  3. 如需彻底清理,可手动删除用户目录下的相关配置文件与缓存目录(参考社区常见反馈,具体路径以实际安装方式为准)。

提示:卸载后用户级配置文件可能仍保留在个人配置目录中,若希望完全恢复初始状态,建议在卸载后手动检查并删除这些残留目录。

相关标签
Diffuse文本对比工具文件合并工具diff merge代码差异比较图形化 diff 工具版本控制辅助工具Git 文件对比开源合并工具Linux 文本比较软件