Logseq 是一个与 Obsidian 类似的双链笔记软件,断断续续地用了应该有几年了,但是同步/备份比较麻烦,尤其是在不同系统类型的设备多个设备上。Logseq 与 Obsidian 都是通过加载一个本地文件夹作为笔记仓库的形式来运行的,因此笔记的同步,本质上还是同步这个文件夹,但是这样的同步,在不同的系统和设备上,达到完美的体验,实际也有点烦的。
总结下来有几个阶段,每个阶段基本都尝试了一些方式,然后都不太好搞。因此最后的我现在还是选择官方的同步功能,每月 $5.
PC 间通过 OneDrive 同步文件夹实现同步
最开始使用的时候只在电脑上面使用,甚至都没想过用手机查看或者记录,因此最开始的时候只有在两台 PC 之间同步笔记的需求。这样就比较简单,选择一个可以实时同步文件夹内容的云盘,比如 OneDrive 或者坚果云都可以。当时用的就是 OneDrive,同步流畅度还可以,再加上基本有不会有同时在两台设备上编辑的情况出现,基本没出过什么问题。
iCloud 同步文件夹实现同步
后面换了 iPhone,需要在 iPhone 和 PC 上同步笔记。iPhone 上很自然就考虑选择使用 iCloud 同步,而且 Windows 实际上也是可以安装 iCloud 进行同步的,最开始的时候我就是使用 iCloud 在 iPhone 和 Windows 上面同步。
然而 iCloud 同步实际上很容易出现问题,尤其是在 Windows 设备上。有些时候文件在正常使用的时候,会因为同步问题而出现多个版本。有时候文件的某个版本因为莫名的原因无法下载,这个时候 logseq 就会一直卡在下载文件阶段,然后阻塞界面,卡死程序。
这种情况需要手动地去 iCloud 的存储位置把多出来的同步不成功的文件删掉才好。Obsidian 也有这个问题,但是这种卡死的情况只会出现在打开软件的时候,在使用过程好像还没见过。而这个在 iCloud 目录找出重复文件并删除的操作,在移动端上基本搞不了,因此如果是在外面手机打开出现了这个问题,基本等于无解。
后面电脑换成了 Mac,这种同步出现冲突多版本的问题基本没有出现过了。但是后面在实际使用的时候也发现了一个另一个问题:文件的同步和拉取可能会有延迟,导致有可能电脑记了今天的日记,然后手机在打开前没有识别到今天实际上是有更新的,在打开软件的时候默认会创建今天的笔记,而这个新创建的笔记日期更新,就会直接把电脑端的笔记给覆盖掉。不过原来logseq里面有个bak文件夹可以做备份,找还是能找回来的,但是就得手动在程序外操作。
Git 同步
在换到 Mac 之前使用,Windows 使用 iCloud 同步容易出问题,当时还尝试了另一个通过 Git 同步的办法:
- Logseq 原生就带有 Git 版本管理能力,定时(比如每分钟)会自动提交。PC 端可以通过配置 Git Hooks,实现提交的时候自动 push 到一个 remote repo.
- 移动端的话当时使用 IOS,通过 a-shell 和快捷指令的方式实现文件的拉取和同步。具体是通过快捷指令,在打开 Logseq 的时候先 pull 一把,然后在关闭应用的时候提交并 push 到 remote 上面
这样的方式只能做到笔记文件在不同设备上面同步,但如果真的出现同时修改的情况,感觉会出问题。
流程看着很可行,但实际用下来体验也很差,很多问题
- remote repo 我是放在 GitHub 上面,移动端拉取很容易有网络问题而拉取失败,导致移动端笔记不能同步到最新
- 有可能会出现冲突,冲突还必须要 Git 解冲突,这就必须人工介入操作了
Android 与 PC 通过 Google Drive 同步
后面手机换回 Android 了,移动端用不了 iCloud,换到了 Google Drive 上面。这时候才发现各家云服务商在安卓上面原来都没有像 iCloud 这种实现文件夹在本地与云服务上双向同步的能力,需要的话,必须使用第三方的软件(比如 AutoSync)来实现双向同步。而这些服务用下来体验也很一般,首先使用前必须将云端存储的读写权限全部授权给三方软件,这样就已经有点担心了,然后实际的同步也只是通过周期性执行同步任务,调用 Drive 获取最新文件的方式来同步的,同步很慢,也容易失败。试了几次我就删掉,并且撤回授权了。
官方同步功能
上面提到的各种同步方式,本质上还是在程序外通过系统或者软件,同步更新存放笔记的文件夹内容。这样无可避免一个问题:Logseq 本身是感知不到这个同步过程,以及文件内容是否已经同步好了的。每次打开其实都会是当作一个已经同步好的状态来处理,读写文件。这样 logseq 和外部就可能会出现对文件的同时读写,继而出现问题。这也是上面出现各种同步问题的主要原因。
题外话:obsidian 上面有很多内部插件实现同步的能力,logseq 是否可以提供像 obsidian 一样,基于内部插件的方式来进行同步呢?为什么 logseq 上面基本都没有同步的插件?有可能官方对这能力依赖的口子没有打开?
在 Android 上折腾同步实在是折腾不动了,最后选择了氪金。现在 Logseq 提供了同步功能,虽然还是 beta 阶段,但是实际用下来已经非常丝滑,各个设备轻松同步(Android+Mac+iPad)。现在最低只需 donate 5$ 每月,就可以启用,详细的方法可以看官方文档,支持通过银行卡(Visa/Master),Google Pay,或者 PayPal 付款。
官方的同步功能支持最多 10 个 graph 的同步,我看 v2ex 上面也有出合租车位的,只要几块钱。虽然说每个 graph 都有单独的密码加密,但是感觉这种出租空位的方式,还是有点安全问题,因为给别人创建 graph,需要把帐号给别人登陆才能创建,而试了一下,remove 远程的 graph,好像是不需要密码的,可能有数据被恶意删掉的可能性,有点危险。
汇总
同步方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
OneDrive 同步 | PC 间同步 | • 同步流畅 • 操作简单 • 基本无冲突问题 | • 仅限 PC 设备 • 移动端支持有限 |
iCloud 同步 | iPhone + PC/Mac | • Mac 环境下相对稳定 • 原生 iOS 支持 | • Windows 上容易出现文件冲突 • 同步延迟可能导致数据覆盖 • 移动端难以处理冲突文件 • 程序可能卡死 |
Git 同步 | 跨平台技术方案 | • 版本控制能力强 • 支持自动提交 • 理论上支持所有平台 | • 网络问题导致同步失败 • 需要手动解决冲突 • 配置复杂 • 移动端操作困难 |
Google Drive + 第三方同步 | Android + PC | • 支持 Android 平台 | • 需要授权第三方软件 • 安全风险较高 • 同步慢且容易失败 • 只能周期性同步 |
官方同步功能 | 全设备同步 | • 程序内置,体验丝滑 • 支持多设备(Android+Mac+iPad) • 数据加密安全 • 支持最多 10 个 graph | • 需要付费($5/月) • 仍处于 beta 阶段 • 合租存在安全风险 |
- 单纯 PC 使用:OneDrive 等云盘同步即可满足需求
- Mac + iOS 环境:iCloud 基本可用,但需注意同步延迟问题
- 涉及 Android 的跨平台多设备:官方同步功能是最佳选择,虽然需要付费但体验最好
- 技术用户:可以试试 Git 方案,但需要有处理冲突的能力