Repository navigation
v0.2.15
OpenCompare v0.2.15 release notes
English | 简体中文
v0.2.15 converges three user-visible directory sync changes already merged into main: directory sync now lands links as links, the sync preview summary follows the checked deletions, and both READMEs spell out the three sync postures. The diff and merge algorithms, directory scanning's no-follow counting posture, the snapshot format and the release channel are unchanged.
What changed
Links are synced as links
- Source-only links stay links: a symbolic link that exists only on the source side is created as a link on the target side. Its target string is stored verbatim, so a relative path is never rewritten to an absolute one, a dangling link lands as a link, and a link that points at a directory lands as a link as well without entering the target subtree.
- Replacing an ordinary file never writes through: when a target-side ordinary file is replaced by the source link, only that entry is replaced; the file the old entry pointed at is left intact.
- Mirror deletion removes the link only: with a mirror delete checked, the run deletes the link itself and never reaches through it to the file it points at.
- Link time alignment: when both sides hold the same link and only the link time differs, the preview lists a link-time alignment and the run can align it without copying any content.
Preview summary follows the checked deletions
- One predicate for the summary: the "this run" counts, the Apply button and the no-executable guidance come from the same decision. With mirror deletions unchecked the executable count is 0 and Apply is disabled; checking one item makes it 1 and enabled, and unchecking it returns to 0.
- The delete group header counts both: the mirror delete group header shows the planned count and the checked count together.
- The reported deletions match the disk: the count in the completion notice comes from the run's own execution record, so it matches what actually left the disk.
README sync postures
- Three postures in both READMEs: incremental sync only adds and overwrites, never deletes; mirror sync also lists target-only items as pending deletions, which stay unchecked by default and run only when you check them; changes made outside the app are read on the next comparison, with no background file watcher.
Windows portable download
Windows ships both the NSIS installer and a portable .zip (extract and run, no installation step). Auto-update keeps resolving to the NSIS installer, so the portable zip is a download only.
Not in this release
- No changes to the diff and merge algorithms: the four-state semantics, line diff results and three-way merge behavior are unchanged.
- No changes to the directory scanning no-follow posture, the snapshot format or the release channel.
Risk and verification scope
The changes are limited to directory sync link handling, the sync preview summary and the two README feature lines; the diff / merge / scanning algorithms, the four-state counts and the snapshot format are untouched. This release states no performance or memory numbers.
Upgrade
Upgrade from v0.2.14. Replace the app with the v0.2.15 package for your platform (macOS .dmg / .zip, Windows installer, Linux .AppImage / .deb). No data migration is needed; existing sessions and settings keep working. The signing posture is unchanged: the macOS build is Developer ID signed and Apple-notarized, and CI fails closed when credentials are missing.
简体中文
OpenCompare v0.2.15 发布说明
English | 简体中文
v0.2.15 收敛三项已合入主干、用户可见的目录同步改动:目录同步按链接落盘、同步预览摘要跟随删除勾选、两版 README 补齐三条同步口径。对比与合并算法、目录扫描的不跟随链接口径、快照格式与发布通道都没有改动。
本次变化
按链接落盘
- 源侧独有链接同步后仍是链接:符号链接按自身落盘,目标串按字面原样写入——相对路径不会被改写为绝对路径,悬空链接照链接落盘,指向目录的链接同样只落链接本身,不跟随、不进入目标子树。
- 替换普通文件不写穿:目标侧同名普通文件被链接替换时只替换该条目,不写穿它原来指向的外部文件。
- 镜像删除只删链接本身:勾选镜像删除后,本次只删链接本身,不穿透到链接目标。
- 链接时间对齐:两侧是同一个链接、仅链接时间不同时,预览把它列为待对齐链接,执行时按链接对齐,不复制内容。
预览摘要与删除勾选同源
- 同一份判定:「本次将执行」计数、执行按钮与不可执行提示由同一份判定得出。镜像删除项默认不勾选,此时可执行数为 0 且执行按钮不可用;勾选一项后为 1 且可用,取消勾选又回到 0。
- 删除组头同时显示计划数与已选数:镜像删除组头同时给出计划数与已选数。
- 提示的删除数与磁盘实际一致:完成提示里的删除数取本次执行结果,与磁盘实际一致。
README 同步口径
- 两版 README 补三条同步口径:增量同步只做新增与覆盖、不删除;镜像同步额外列出目标侧独有项作为待删除项,删除项默认不勾选、显式勾选后才执行;应用外对目录的改动在下次对比时读取,没有后台文件监听。
Windows 免安装包
Windows 同时提供 NSIS 安装包与免安装 .zip(解压即用,无安装步骤)。自动更新仍指向 NSIS 安装包,免安装 zip 只作为下载。
不做的事
- 不改对比与合并算法:四态语义、行级差异结果与三向合并行为保持原状。
- 不改目录扫描的不跟随链接口径、快照格式与发布通道。
风险与验证规模
本版改动集中在目录同步的链接落盘、同步预览摘要与两版 README 的能力行:对比 / 合并 / 扫描算法、四态计数与快照格式均未改动。本文件不写任何性能或内存数字。
升级方式
建议从 v0.2.14 升级:下载 v0.2.15 对应平台的新安装包覆盖安装(macOS .dmg / .zip,Windows 安装包,Linux .AppImage / .deb)。本次不需要迁移数据,已有的会话与设置照常可用。签名与公证口径不变:macOS 包经 Developer ID 签名 + Apple 公证,凭据缺失时 fail-closed。
Full Changelog: v0.2.14...v0.2.15