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


下载与安装
- 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 的规范化快照文档,导入任意一侧后重新对比。
快速上手
- 用新建对比打开两个路径,或用打开文件夹分别选择左右两侧;不加载样本也能直接对比。
- 看四种状态:相同 / 新增 / 删除 / 修改。
- 双击文件下钻到对应的代码、CSV 或 JSON 视图。
- 预览同步清单后,应用增量或镜像改动。
环境要求与开发
- 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。