Skip to content
项目

chaxiu/OpenCompare has 43 GitHub stars and 5 forks. GitHot measured +3 in 7 days. Last checked 2026-11-10 19:20 UTC. Last push 2026-11-05.

这些数字如何统计

Modern cross-platform desktop diff and three-way merge tool: directory compare and sync, template relocation, snapshots, code diff, CSV alignment, JSON/YAML semantic compare. Free MIT alternative to Beyond Compare 5 Pro.

可以做什么

  • Code diff and 3-way merge: line and intra-line highlighting, synchronized scrolling, per-hunk overwrite, and diff3 conflict blocks resolved one block at a time.
  • CSV key alignment: align CSV / TSV rows by a chosen key column, tolerate shuffled rows and shifted columns, and filter rows by state.
  • JSON / YAML semantic comparison: compare parsed documents by JSON Pointer path, ignoring key order, comments and indentation.
  • Snapshot protocol (.ocsnap.json): export a directory as a normalized document with metadata and SHA-256, import it on either side, and compare again.

实测星标增长

24小时
更新延迟
7天
+3
15天
正在收集历史
1个月
正在收集历史

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

README.zh-CN.md

原文

OpenCompare

English | 简体中文

最新公开版本:v0.2.23 — macOS 安装包经 Developer ID 签名与 Apple 公证。

最新版本 License: MIT

OpenCompare 是面向 Beyond Compare 5 Pro 使用场景的现代跨平台桌面对比与三向合并工具:目录对比与同步、代码 diff 与合并、CSV 主键对齐、JSON / YAML 语义对比、目录快照。基于 Electron + React 19 + TypeScript,同一套代码同时提供桌面应用与浏览器预览。

OpenCompare 工作台双目录对比

OpenCompare 代码视图的文件 diff 与右侧指示条

下载与安装

  • macOS arm64:从 Releases 下载 .dmg,打开后将 OpenCompare 拖入 Applications,再从 Applications 启动。
  • Windows:运行 .exe 安装包,按向导完成安装后从开始菜单启动。
  • Linux:先 chmod +x 再运行 .AppImage;或用 sudo apt install ./opencompare_amd64.deb 安装 .deb。.AppImage 通过 FUSE 2 挂载运行,需先安装 libfuse2(Ubuntu 24.04+ 为 libfuse2t64);没有 FUSE 2 时可用 APPIMAGE_EXTRACT_AND_RUN=1 ./OpenCompare-*.AppImage 运行,或直接安装 .deb。

所有已发布版本都在 Releases 页。

核心能力

  • 目录对比与同步:多层嵌套双目录树对比,按 相同 / 新增 / 删除 / 修改 分类每个节点,增量同步与镜像同步先干跑预览再落盘。增量同步只做新增与覆盖、不删除;镜像同步额外列出目标侧独有项作为待删除项,删除项默认不勾选,显式勾选后才执行。应用外对目录的改动在下次对比时读取,没有后台文件监听。
  • 代码 diff 与三向合并:行级与行内字符级高亮、同步滚动、逐差异块覆写,diff3 冲突块逐块解决。
  • CSV 主键对齐:按选定主键列对齐 CSV / TSV 行,容忍行乱序与列偏移,可按时态过滤行。
  • JSON / YAML 语义对比:按 JSON Pointer 节点路径比对解析后的文档,忽略键序、注释与缩进。
  • 快照协议(.ocsnap.json):把目录导出为带元数据与 SHA-256 的规范化快照文档,导入任意一侧后重新对比。

快速上手

  1. 用新建对比打开两个路径,或用打开文件夹分别选择左右两侧;不加载样本也能直接对比。
  2. 看四种状态:相同 / 新增 / 删除 / 修改。
  3. 双击文件下钻到对应的代码、CSV 或 JSON 视图。
  4. 预览同步清单后,应用增量或镜像改动。

环境要求与开发

  • Node.js >= 20.19
  • pnpm 10
pnpm install
pnpm dev        # 启动 Electron 桌面窗口
pnpm dev:web    # 浏览器预览
pnpm lint       # ESLint
pnpm typecheck  # tsc --noEmit
pnpm test       # vitest
pnpm build      # 桌面三进程包
pnpm build:web  # 浏览器静态产物

项目结构

src/main/       Electron 主进程:窗口生命周期、IPC handler、真实文件系统访问
src/preload/    contextBridge 安全桥接,仅暴露白名单 channel
src/core/       纯算法与领域模型,零 Electron / DOM 依赖
src/renderer/   React 19 UI:工作台、场景视图与基础组件
src/shared/     跨进程共享类型、PlatformPort 契约与内置样本

已知问题

当前没有已知未修复问题。可复现的问题请提交到 Issues。

以下为设计口径,不是缺陷:

  • Incremental 模式不列出删除项,需要删除目标侧独有项时切换到 Mirror。
  • 应用外部的改动不会自动出现,需要重新扫描/预览。

证据与文档

发布流程 · 签名凭据 · 符号链接口径 · 大目录内存。

Performance & memory evidence:只读诊断 与 大目录内存。

教训与口径沿革:历史结论、一次性事故与已闭环实测口径。

Open Rebuilds 001 平替

OpenCompare 是 Beyond Compare 5 Pro 的免费 MIT 平替,收录为 Open Rebuilds 系列第 001 号项目。

许可

MIT,见 LICENSE。

探索相关项目