关于思源同步机制的疑问

本人纯小白,以前就丢过几次笔记,这次春节回家用老电脑同步又出现了一大批冲突文档,得一个个手动删除,这一连串事件把我搞懵了,原来我一直都没理解思源的同步机制,所以请教这几个问题?

1.在设备上点击同步后,究竟是以云端最新版本为准,还是以本地最新版本为准?

2.如果云端覆盖本地的话,是融合本地和云端二者的数据,还是将本地数据删除后再以云端数据替换之?比如:春节前我在主力电脑上已经把本地和云端数据同步了(148MB 大小),而春节回家所用的老电脑的版本是很早前的版本(170MB),经过一段时间的使用,我已经在主力电脑上对旧版本进行了删剪和整理使之变成了 148MB 大小,结果我在老电脑上点击同步,直接将本地 170MB 的数据覆盖到云端,使得笔记中很多已被删除的文档又跑回来了。

因此我想搞明白思源的同步机制和印象笔记、wolai 之类笔记有什么本质区别,为什么我使用它们的时候没有出现过这种问题,同步是自然而然的,至少没有引起过我的注意和思考

3.我查看了论坛的其他回复,说可以使用数据快照标记后进行版本回滚,本人纯小白,有没有具体教程?

4.如何批量删除冲突的文档?

感谢!

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • EberhardLin 1 评论
    捐赠者 订阅者

    3.我查看了论坛的其他回复,说可以使用数据快照标记后进行版本回滚,本人纯小白,有没有具体教程?

    兄弟你好,我简单说一下我的方法(以目前最新的 v2.7.0 为例):

    image.png

    先进入「数据历史」;

    image.png

    选择最近的数据快照,点击「标记快照」;

    image.png

    标记快照的名字可以随便起,我是日期(XXXX 年 XX 月 XX 日)+ 做了什么(例:更新 XX 学笔记)。而后可以点击标记快照或标记快照并上传,标记快照就是将该快照标记到本地留存。

    你可能会疑惑,为什么呢?它不是已经在本地了吗?

    image.png

    如图所示,这些数据快照其实都会被自动删除的,你可以在「设置」-「编辑器」-「历史生成间隔」/「历史保留天数」进行设置。所以我们需要标记一份不会被自动删除的快照。

    在本地标记好一份不会被自动删除的数据快照后,我们就可以进行上传到云端了。

    image.png

    如图所示,从这里进入「本地标记的快照」(和「云端标记的快照」)。

    image.png

    这里两个图标就是「上传」和「回滚」。「上传」就是上传到云端,也就是「云端标记的快照」;「回滚」就是恢复到这个数据快照,快照这个词你能理解吧,举个例子:你给你现在的发型拍了张照,半年后你的发型早已改变,你忽然想换回半年前的发型,于是你拿着照片去理发店和 Tony 说“我要这个发型”。拍的这张照就叫快照,让 Tony 帮你恢复就叫回滚。

    「云端标记的快照」界面逻辑不再赘述了。

    我每次本地标记一张快照,都会把这张快照上传到云端。 所以,如果我要回滚,我会直接进「云端标记」的快照进行回滚。


    以上,就是我对数据快照的使用方法,很普通,基本上就是跟着这个功能特性的设计的思路走的。也不知道能不能帮到你,希望对你有帮助。

    3 回复
    1 操作
    EberhardLin 在 2023-01-22 22:41:12 更新了该回帖
    很详细,谢谢!
    tzxxzszy
  • tzxxzszy
    订阅者 作者

    期待更新,对我帮助太大了,谢谢!

  • EberhardLin
    捐赠者 订阅者

    这是我之前对一个关于「云容量不够用」的回复: 思源笔记 8G 的空间用完了怎么办? - EberhardLin 的回帖

    这个回帖内容中的第二点「定期备份」你可以了解下,也许这个对你也有用。

    1 回复
  • tzxxzszy 2 评论
    订阅者 作者

    老哥,再请教一下,使用云端的数据快照进行回滚,需要重置数据仓库吗,回滚后需要马上点同步吗?谢谢

    回滚后不需要重置数据仓库吧,一般来说,重置数据仓库是因为云端服务出错(例如忘记密钥)等,又或者某些特定的需求。用云端的数据快照进行回滚就回滚了而已,将云端标记的数据快照回滚本地的数据。虽然我不懂背后的技术细节,但我的理解里,没有需要重置数据仓库的要求。
    EberhardLin
    回滚后,怕同步旧的数据,那你就先编辑一段内容。但我记得似乎回滚后正常来讲,同步不会有问题的,不过我也没遇到过出错的场景,恐怕我的理解比较没有说服力。抱歉。
    EberhardLin
  • wxtgood
    支持者 订阅者
    1 回复
  • kiri2589 3 评论

    我是完全不能接受用快照来恢复数据,因为我不知道什么时候数据丢失了。

    我现在用的就是 2.7.0,如果在 3.0 还是不能解决同步数据丢失问题,我就彻底放弃这个软件了。虽然 joplin 没有这么 NB 的编辑功能,但是 joplin 从来不会丢失任何数据也不会动不动就崩溃

    程序是死的,人是活的。思源笔记除了数据快照来恢复数据,还能用导入「data 压缩包」来恢复数据,也能直接 copy 工作空间「SiYuan」后在设置里设置工作空间的方式来恢复数据,单论备份后恢复数据,思源笔记几乎把能做的都做了,哪怕没有云端,不导出 data 压缩包,一样能直接 copy 整个工作空间来备份数据,日后因需恢复。
    EberhardLin
    但你的描述又似乎是同步问题?我指的是备份和恢复,不是说同步。一个是手动(数据快照),一个是自动(同步)。目前为止,我没有遇到过数据丢失的问题,从数据仓库上线正式版的第一版开始,我就在用数据仓库了,密钥这么久以来都没换(那个时候还是自动生成密钥)。前后经历过三版云端服务改版(同步机制改版)我都没有遇到过数据丢失。
    EberhardLin
    至于 Joplin 的话……我没记错人家也是支持官方云服务或第三方 WebDAV 吧。不知道你的 Joplin 同步用的是什么方式,不过思源也一样可以用 WebDAV 同步啊,你怕官方的同步会丢失数据,也一样可以用第三方的服务器,甚至能用 S3 协议的云同步。
    EberhardLin
  • tzxxzszy 1 评论
    订阅者 作者

    谢谢分享,老实说没怎么看懂链接里的文章 😂 我在实际使用中发现,有时是以云端为准,有时是以本地为准,这一点把我整懵了

    你可以考虑检查下思源笔记应用版本一致否,手机、电脑上的时间是正确的吗等等环境问题,如果你检查了没啥问题,还是这么同步不稳,我帮你 @ D 大,虽然这个帖它应该也看了,但你的帖子问的东西比较多,它不好回复估计。
    EberhardLin
  • kiri2589

    我用 joplin 就是用的 webdav 的方式进行同步,但是 joplin 两个客户端同时在线,绝对不会出现文档被删掉的情况。siyuan 确实可以用历史来回滚。我的笔记有 12GB,图文居多。虽然没有上千个笔记,但几百个还是有的,我怎么知道哪些是被删除的?siyuan 历史里只有时间线,没有标签标明哪些是被删除的。我今天整了一下午,2.7.0 版本也不给力,崩溃了 N 此,而且崩溃后再打开就出现这个界面,好久好久(需要等 30-50 分钟)才能打开。

    图片.png

    1 回复
  • EberhardLin 1
    捐赠者 订阅者

    兄弟我结合我自己的经验和使用体验说说嗷。

    1. 两端同步,数据出错其实不是两端同时在线的问题,而是两端同时同步的问题。只要两端同一个时间段内同步,就很容易出现问题,这个我找不出证据,需要懂技术的人来说。我的理解就是本地把数据上传到服务器,两端同时上传的话,两份同个时间段的数据都上传到服务器,那么就会出现冲突,有冲突就容易出错。
      • 就思源笔记而言,要解决的话可以将两端同时改为手动同步,并且启动的时候不要同时启动(启动的时候会执行一次同步),这样的话就可以两端同时在线,但是同步的时候最好手动同步一次。
      • Joplin 我也用过,但是本地优先的笔记软件同步数据上云端,两端同时同步就会很容易出错,早期的有道云笔记也是这样(重构的我没用)。
    2. 谁知道哪些被删除的问题,这个我觉得是本地优先的具备云端同步功能的笔记软件都具备的问题,但思源如果出现被删除,你可以在数据历史里找到,因为你本地的操作数据历史都会记录(根据设置的历史生成时间),还会生成冲突文档(可以在设置里设置为不直接生成,在数据历史中生成),换言之,当你用思源笔记的时候发现数据被删了,可以在数据历史中找到,并且会标出是冲突文档。(不过数据历史有时间,当然你也可以设置很久很久,这本身是一个保险机制,其他软件甚至都没有,数据出错被删除、消失了也没法在本地找回来)。
    3. 打不开思源笔记 & 使用思源笔记体验不佳的问题……因为每个人的机器配置和使用环境都不一样,很难讲具体是什么原因导致的,尤其是 2.7.0 崩溃 N 次,我感觉不是思源笔记的问题(因为我自己用没什么问题),但我也不清楚是什么原因,不好意思啊。
    1 回复
  • kiri2589

    1、非常感谢您的回复,出现同步问题后,我也是按照您的这个方案改了同步时间。

    2、历史里面没有冲突的选项

    图片.png

    3、我有两个笔记本,分别是 win11 和 win7,目前 win11 的崩溃后再打开就是一直等待,提示“正在索引文档树”。win7 的崩溃后还未出现这个提示,但也是崩溃了几次。下图为 win11 的笔记本配置,是电脑较旧的原因导致的崩溃?杀毒软件我用的是 windows 自带的,没有安装其他任何杀毒和监控软件。在索引文档树时,对 CPU 还是有些占用的。

    图片.png

    图片.png

    1 回复
  • EberhardLin 1 1 赞同
    捐赠者 订阅者

    冲突文档可以在「设置」-「云端」-「同步冲突时生成冲突文档」设置。

    image.png

    就像该设置的说明一样,不管开没开,如果出现冲突文档时,数据历史都会有记录,所以如果数据历史没有冲突文档(我没记错的话,冲突文档的命名会在原文档后加上时间,但因为我没遇到过冲突文档,所以希望你不要太在意这句话),就说明没有冲突文档。

    其次就是,我觉得你的两台电脑都出现崩溃多次的现象,是不是该考虑暂时不用思源笔记,来排查究竟是什么原因造成无法正常使用思源笔记,例如电脑后台的某个进程之类的,因为这方面很明显是不正常的。当然也可以说是思源笔记的问题,但目前我自己使用没遇到过这样的(早期版本崩溃过,但随着更新我似乎没再遇到过崩溃),所以我个人不太觉得是思源笔记本身的问题。

    最后因为你无法正常使用思源笔记,所以我将用户指南中关于同步这一段给你贴出来:

    工作原理

    思源通过对比云端数据快照和本地数据快照进行相应操作:

    如果快照相同则忽略本次同步

    如果快照不同,则将本地距离上次同步的变更上传到云端,将云端最新的变更合并到本地

    如果两端的变更没有冲突则直接合并

    如果存在文件冲突,则以本地为准覆盖云端,同时拉取到的云端冲突文件会归入到数据历史中

    同步每隔一段时间自动进行,时间间隔算法描述如下:

    数据变动后 30 秒如果不再发生变动则进行一次对比,如果继续发生变动则顺延 30 秒

    没有数据变动则按 5 分钟、8 分钟、16 分钟、32 分钟……递增间隔

    场景例举

    从上述工作原理我们可以得知,思源仅支持在多设备上交替同步数据:设备 A 上同步完成以后设备 B 上再进行同步。无法支持多设备同时同步,这样会发生无法预期的数据覆盖。

    正常场景

    1. 在设备 A 上编辑后执行同步(通过自动或者手动触发同步),此时云端数据会被设备 A 数据覆盖,既云端和设备 A 保持数据一致
    2. 在设备 B 上执行同步,此时设备 B 数据会被云端数据覆盖,即云端和设备 A、B 保持数据一致
    3. 设备 B 上编辑后再次执行同步,此时云端数据会被设备 B 数据覆盖,既云端和设备 B 保持数据一致
    4. 在设备 A 上执行同步,此时设备 A 数据会被云端数据覆盖,即云端和设备 A、B 保持数据一致

    该场景下,使用同步的过程是在设备 A、B 上交替进行的,这样能够保证数据同步符合预期正常完成。

    冲突场景

    1. 在设备 A 上编辑 a 文件后同步
    2. 在设备 B 上编辑 a 文件后同步
    3. 此时云端 a 文件会被 B 设备上的 a 覆盖,同时在 B 设备上生成之前 A 设备 a 的历史

    注意

    • 睡眠或关机等突然断网的情况下不会触发同步,请手动点击同步按钮进行同步
    • 请勿同时使用第三方同步盘和思源同步,可能会导致数据损坏
    • 符号链接和隐藏文件不会被同步

    希望对你了解思源笔记的同步机制有所帮助,我个人觉得还是说明的蛮清晰的。

    最后

    如果电脑没法正常使用,还是考虑是否要花费精力去解决这个问题。我自己来说的话,如果遇到这样的情况,我因为我也不太懂技术,更不愿意花费时间去解决我似乎难以解决的问题,所以我可能会在链滴发帖,然后继续使用我能使用的笔记软件(例如你所使用的 Joplin),毕竟工具是死的,人是活的。

    PS:如果我没法正常使用的话,我可能会考虑使用 Obsidian,并且是纯本地使用,因为我不喜欢第三方同步尤其是同步盘同步(特别麻烦且容易出错),需要在跨端同步使用就繁琐点通过云盘来备份-恢复。

    流程很繁琐,但我本身多端需求不是很高,通常都是在一台电脑上完成所有操作,所以这一操作不会太频繁,而很多需要在移动端及时记录的琐碎笔记都是现在 Flomo 上记录。

    1 回复
  • kiri2589 1 1 赞同

    嗯,您的回复非常不错,解释了我不少疑问。同步问题昨天我两台电脑分别登录,交替编辑后同步,数据一切正常。昨天一直崩溃的问题应该也找到了,是 ORC 软件的问题,后续继续关注,希望越来越稳定。

    再次感谢您的耐心解答。

请输入回帖内容 ...

推荐标签 标签

  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    98 引用 • 151 回帖 • 179 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 383 回帖 • 2 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 558 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    8 引用 • 25 回帖 • 3 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    129 引用 • 1110 回帖 • 204 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    119 引用 • 73 回帖 • 191 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 558 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    158 引用 • 797 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    34 引用 • 103 回帖 • 13 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 67 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    9 引用 • 117 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 427 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 482 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    884 引用 • 922 回帖 • 2 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    28 引用 • 209 回帖 • 556 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 576 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 364 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 441 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    23 引用 • 187 回帖 • 27 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 20 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    144 引用 • 458 回帖
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 589 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 684 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    195 引用 • 354 回帖 • 98 关注
  • 分享

    有什么新发现就分享给大家吧!

    235 引用 • 1672 回帖 • 3 关注