期待v3版本的发布 ![]()
我想我已经找到了一种更好的方式来支持 S3 或其他后端,同时将维护开销和插件冗余降至最低。因此,上面的投票可以结束了。
S3 同步功能终将以更明智的方式实现,而在新架构下,不需要 S3 的用户不会受到任何冗余体积的影响。
我正在考虑是否要简化或直接移除本插件中的 Smart Merge 功能。我们现已开启一项新的投票:
现状
- 本插件目前会在数据库中为你的仓库里的每条 Markdown 笔记保存一份历史内容版本。
- 该数据库的唯一用途就是支持
Smart Merge冲突解决策略。 - 需要解决冲突的情况非常罕见。只有当你在不同设备上同时编辑同一条笔记时才需要。除了
Smart Merge,本插件还支持其他策略,例如Latest Survive。 - 然而,支持该功能的代价巨大:插件需要管理一个数据库,占用大量存储空间,并产生大量额外的文件 I/O,这可能会拖慢同步过程。
解决方案
- 完全移除
Smart Merge,这将极大地简化代码库。 - 使用
two way merge替代three way merge,这样可以消除对数据库的依赖,同样能大幅简化代码库。代价是合并结果的准确度会有所降低。 - 保持
Smart Merge不变。
简化的优点
- 减少存储空间占用
- 更小的插件体积和更快的加载速度
- 同步速度略有提升
- 更好的可维护性
简化的缺点
- 合并准确度降低(方案 2)或完全无法合并(方案 1)
- 你可能需要容忍准确度较低的合并结果,或切换到
latest survive策略(请记住,需要Smart Merge的场景非常罕见)
- (Remove) 完全移除 “Smart Merge”
- (Simplify) 使用 “two-way merge” 替代 “three-way merge”
- (Keep) 保持 “Smart Merge” 不变
0
投票人
此投票也可在 GitHub 此处 参与。
“智能合并” 一直没明白原理,没使用过。
同步,我都是用"使用最新版本",应该会更安全的。
在 iOS 平台,每次打开才能触发同步有好也有坏,如果文档库里要同步的文档比较多的话,每次打开就会卡顿很久才能同步完成。
可以试试另一个软件:SynoSync,支持 WebDAV 在 iOS 后台同步到 Obsidian 文档库,更无感,更优雅~