关于思源同步机制的疑问

本贴最后更新于 459 天前,其中的信息可能已经水流花落

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

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

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

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

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

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

感谢!

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18697 引用 • 69807 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6551 引用 • 29424 回帖 • 246 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 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

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

    图片.png

    1 回复
  • kiri2589 3 评论

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

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

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

推荐标签 标签

  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 152 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 19 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 6 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 39 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 643 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    330 引用 • 614 回帖
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 597 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 740 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 693 关注
  • 游戏

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

    169 引用 • 799 回帖
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 345 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 294 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • Wide

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

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

    30 引用 • 218 回帖 • 605 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 618 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6551 引用 • 29424 回帖 • 246 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    19 引用 • 31 回帖 • 1 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 6 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • V2Ray
    1 引用 • 15 回帖 • 2 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 54 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖