思源笔记能否支持单个文档的历史记录回溯?

本贴最后更新于 641 天前,其中的信息可能已经沧海桑田

我有好几次发现某些文档在多设备同步过程中,内容都被冲掉了。不知道作者针对同一个文档,有没有严格按照时间戳在多设备之间同步内容?

然后我要去找这个文档在 30 天内的历史记录,就非常非常麻烦,每次去工作空间目录下,耗费了好大的劲才把内容恢复回来。

两个设备在同时打开一个文档进行编辑时,其中一个设备应该提示云端有增量内容,先强制 pull 后,才能修改。就和 git pull -> git commit -> git push 的原理一样,永远按照同一条时间线前进,如果有冲突,该 merge 就提示 merge。不应该存在这种情况:云端明明有较新的内容,本地还没来得及同步下来,就直接 push 上去了,那较新的内容肯定被冲掉了。

  • 思源笔记

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

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

    18704 引用 • 69828 回帖

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 你好像没有理解我的意思,我想在一个文档的右键菜单里集成历史记录查询,只看这一个文档的历史记录。

    现在的数据历史弹框里,是按时间线维度看的,看的是一个笔记本下所有文档的改动,我还要一个个点开看有没有包含我要查看的文档,很不方便。

    我就想要看一个文档的历史改动记录。

  • 其他回帖
  • 有的,看帮助文件和你说的差不多的。

    历史记录回溯在顶部菜单数据历史里

    数据同步

    概述

    数据同步指的是在多个设备上保持 工作空间/data/ 文件夹数据一致,包括资源文件、模板、挂件以及笔记本数据。

    使用方式

    初始化数据仓库密钥1后如果一切正常就已经配置好同步了。

    • 如果需要暂停同步,可关闭选项 设置 - 云端 - 启用云端同步
    • 忽略文件2

    工作原理

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

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

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

      • 如果两端的变更没有冲突则直接合并
      • 如果存在文件冲突,则以本地为准覆盖云端,同时拉取到的云端冲突文件会归入到数据历史中

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

    • 数据变动后 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 的历史

    #注意#

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

    1. 初始化密钥

      第一次使用数据快照前需要在 设置 - 关于 中初始化 数据仓库密钥

      如果你有多台设备,仅需在其中一台设备上 生成密钥,然后拷贝该密钥字符串到其他设备上,通过 导入密钥 进行导入。切勿在多台设备上重复初始化密钥,否则数据快照将无法跨设备使用,比如无法通过云端同步数据快照。

    2. 忽略文件

      如果需要在创建快照时忽略一些文件,请在文件系统上创建或编辑文本文件 工作空间/data/.siyuan/syncignore, 其中每一行使用 data 文件夹的相对路径进行配置,表示忽略文件或文件夹的路径,支持通配符。例如:

      • 20210808180117-6v0mkxr/**/*: 忽略 data/20210808180117-6v0mkxr 笔记本
      • assets/*.pdf:忽略 data/assets/ 下的 PDF 文件
    2 回复
  • 你好像没有理解我的意思,我想在一个文档的右键菜单里集成历史记录查询,只看这一个文档的历史记录。

    现在的数据历史弹框里,是按时间线维度看的,看的是一个笔记本下所有文档的改动,我还要一个个点开看有没有包含我要查看的文档,很不方便。

    我就想要看一个文档的历史改动记录。

推荐标签 标签

  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖
  • 京东

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

    14 引用 • 102 回帖 • 404 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 462 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    207 引用 • 2031 回帖
  • 微软

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

    8 引用 • 44 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 89 关注
  • Sillot

    Sillot (汐洛)孵化自思源笔记,致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点
    Github 地址:https://github.com/Hi-Windom/Sillot

    15 引用 • 6 回帖 • 28 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 7 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    284 引用 • 4481 回帖 • 654 关注
  • 游戏

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

    169 引用 • 799 回帖
  • ngrok

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

    7 引用 • 63 回帖 • 598 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    51 引用 • 37 回帖
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    185 引用 • 318 回帖 • 344 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    396 引用 • 3416 回帖
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    51 引用 • 190 回帖
  • Ngui

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

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

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    215 引用 • 462 回帖
  • 友情链接

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

    24 引用 • 373 回帖
  • 安全

    安全永远都不是一个小问题。

    189 引用 • 813 回帖
  • Lute

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

    25 引用 • 191 回帖 • 21 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 443 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 13 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    129 引用 • 793 回帖 • 2 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 40 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    370 引用 • 1215 回帖 • 582 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    313 引用 • 1667 回帖 • 1 关注