数据同步旧笔记覆盖新笔记问题

本贴最后更新于 634 天前,其中的信息可能已经时过境迁

快照中的旧笔记覆盖新笔记

image.png

上图是本地快照的记录,MisakaDesktop 是我当前使用的电脑,MisakaWork 是公司的工作电脑,常年开机,下班只是关屏幕。

晚上写完笔记后回顾了一眼,发现有一个笔记的数据被回滚了,仿佛没有编辑过,好在通过文件历史找回来了。第一时间想到了同步的问题,于是在云端快照中找到了上图 2023-09-09 00:01:09 这条快照,下载到本地,通过对比发现是把 2023-09-08 20:05:07 快照中的笔记跟回滚了,我通过对比发现,明明左边笔记的更新时间更晚,但是还是被工作电脑的笔记给回滚了,有点费解。下面是截图:

image.png

笔记没有改动过,但是多出一些文件历史

其中还有几个笔记也更新了,我确信最近是没有打开或改动过这些笔记的,但是却出现在了更新记录中。

image.png

我在文档树查看其中一个笔记的更新时间是一个月前:image.png。在文件历史中却有很多修改记录,让人摸不着头脑:

  • 思源笔记

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

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

    25789 引用 • 106753 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • MisakaImouto via Android

    还有一个问题就是,这种情况是没有冲突提示和生成冲突文件的。如果不回头看的话就真的没法发现。😭

  • NieJianYing

    好头大 😳

  • 用的最新版本?

    1 回复
  • 是不是文件时间被外部更改过? 在两个设备上看下 .sy 文件的最近修改时间,如果超过被覆盖的系统的系统时间的话是正常的同步现象,这种情况会发生在手动解压过文件,而不是用导出导入。

    1 回复
  • MisakaImouto

    可以确定的是,工作电脑在下班后就没有人为操作过,文件时间不会被手动修改。

    我刚才远程查看工作电脑该笔记 sy 文件的信息,发现创建时间大于更新时间:image.png

    自己电脑上的创建时间和更新时间是一样的image.png

    我个人感觉就像是工作电脑同步了个人电脑的数据后,先修改了文件的创建时间和更新时间,然后在文件解析成功前进行了一次推送,把旧数据推送到了云端,出现了这种状况,我的云端快照记录是这样的:image.png。红色标记的是旧数据覆盖新数据的快照,绿色标记的快找时间跟前面工作电脑文件的创建时间非常接近。

    当然,以上都是猜测,不知道能不能算是一个思路。

    1 回复
  • MisakaImouto

    工作电脑和个人电脑都是 V2.10.4

  • 创建时间大于更新时间是不正常的,没有外部变动的话不会出现这种情况,思源本身是不会修改创建时间的(技术上做不到,golang 里面没有修改文件创建时间的方式),只会修改更新时间,同步时也是安装更新时间对比的。

    如果没有手动操作的话就只有一种可能就是被其他程序修改了创建时间,并且同时修改了更新时间,导致更新时间大于正常手动编辑文档的设备上的时间,这样的话自动同步时文件更新时间大于云端手动编辑的时间就把云端覆盖了,覆盖完云端后手动编辑文档的系统上因为更新时间小于云端所以就下载云端覆盖回旧数据。

    目前的建议是在手动编辑系统上面编辑一下这个文档,看下文件系统上 .sy 时间是否正常,然后同步一次,然后再到远程设备上同步一次看看时间是否也正常。

    2 回复
  • MisakaImouto

    感谢 D 大建议 🙏 ,我新建了一个工作空间和云端目录进行测试,发现文件的创建和更新时间确实会被同步和编辑影响。下面是我的测试步骤

    双端的云端同步设置如图:image.png

    新建了一个笔记在 A 端进行编辑,在编辑后,该笔记在文件资源管理器中的创建时间和更新时间都变成了刚刚的更新时间:image.png

    此时在 B 端同步,同步后查看该笔记在文件资源管理器中,更新时间与 A 端一致,创建时间大于更新时间,应该跟同步时间差不多:image.png

    我的系统均是 Windows10,版本是 V2.10.4,新建的空间,没有使用插件主题等;这个同步结果与之前主空间一致。

    1 回复
  • 感谢提供信息,抱歉之前我说漏了一种情况,同步过去创建的文件时间的确有可能会大于更新时间,因为文件创建时间是本地系统时间,如果 A 系统时间快的话创建的文件时间就有可能大于 B 系统同步过来的更新时间。不过这个不影响同步,同步对比用的是更新时间,你对比一下两个系统的时间,是不是误差大于 7 分钟了,如果本地更新时间早于云端文件更新时间 7 分钟以上的话会忽略本地修改,即使用云端覆盖本地。

    这个同步结果与之前主空间一致。

    这里我没有看明白是有问题还是没有问题 😂

    1 回复
  • qiancang

    我之前也遇到过文档创建时间大于更新时间的情况。

    我在 A 电脑上将今年的日记从 2023 文档下拖到了 2023/月份(1 月到 8 月) 子文档下。

    B 电脑打开思源笔记完成同步后,2023 文档下及 2023/月份 出现了重复日记,2023/月份 下的日记创建时间大于更新时间。

    1 回复
  • MisakaImouto 1 1 评论

    明白了,那前面的测试结果是符合预期的,前面的测试主要是验证同步是否会修改创建时间,这个测试无法复现昨天被覆盖的情况,只能以后再多留意一下了。

    A 系统和 B 系统时间是一致的。

    最后想提一个功能,就是在文件历史或数据快照中支持 sy 源文件的查看(纯 json),因为插件和主题有时会对块属性修改,被修改属性的块在文件历史或数据快照中只能预览内容的改变,无法查看属性是否变化;长远来说之后会有属性视图,提高属性编辑的易用性,修改属性会成为常用操作,却无法在历史记录中展现。提供 sy 源文件查看虽然门槛比较高,但是至少有方式去对比分析。

    最后感谢 D 大的讲解。🙏

    1 回复
    主要也是怀疑我在 A 端更新完笔记后,B 端在之后的某个插件修改了文档中块的属性之类的,导致 B 端笔记覆盖了 A 端。但是备份源文件再回滚对比太麻烦了,就没有尝试了。
    MisakaImouto
  • 前段时间修复过一个影响创建时间的问题,这个如果现在不能重现的话忽略吧。创建时间大于更新时间在文件系统上可能会出现,但是思源中不应该看到这个,因为思源用的是 .sy 中自己保存的属性。

  • 88250 1 赞同

    源文件对比等后面考虑下,主要是普通用户可能用不上。

    最后,我建议不要长时间开着某个设备(除非是 Docker 部署场景),因为可能有的插件会定时修改属性或者数据来完成某种功能(这仅仅是我的猜测),这样多端同步会有问题,最好还是同时只有一个端在运行比较可靠。

  • MisakaImouto

    又有一篇笔记 09 发生了数据回滚,在早上 10:21 的时候编辑了文件:image-20230915145314901

    然后刚刚 14:37 查看,发现笔记回滚,通过数据历史找到 3 个相近快照,

    • 修改前:10:06:32
    • 修改后:10:22:18
    • 回滚的快照:10:30:32
    • image.png

    下面是三个快照的对比:

    • 修改前和修改后快照对比,是正常的
      • image.png
    • 修改后和被回滚的快照对比,回滚的更新时间早于更新时间
      • image.png

    跟上次的共同点:1. 更新的都是表格内容,然后被回滚;2. 回滚的数据快照备注都是:Cloud sync merge

    这里是日志:systemlog.7z

    @88250 这次只有单机在线,麻烦 D 大分析一下

    1 回复
  • 文件系统上这个文件的更新时间正常吗?

    另外,日志中显示还有另一个 Android 设备在线,所以不太好排除是不是 Android 上有更新覆盖的。

    1 回复
  • @88250 D 大要不要考虑在启动的时候加个本地时间与网络时间差值的判断,避免更新时间导致的同步异常。

    1 回复
  • MisakaImouto

    因为已经更新过这个文件了,文件系统的更新时间已经看不了正不正常了。

    安卓端设置的完全手动同步,云端快照中也没有安卓的快照记录,这点跟上次不太一样。image.png

    1 回复
  • 官方同步有时间校验的,但是允许误差在 3 分钟以内,所以还是可能存在某个设备时间晚于/早于其他设备。

  • 好的,我这边也看了下代码,暂时找不到原因。这样吧,下个版本我们加一些详细的日志,升级后麻烦继续帮忙留意这个问题,感谢。

请输入回帖内容 ...
MisakaImouto
索性去不顾一切,肆意赴未知明天 深圳

推荐标签 标签

  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    730 引用 • 1281 回帖 • 1 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 271 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 692 关注
  • gRpc
    11 引用 • 9 回帖 • 95 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 184 关注
  • BAE

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

    19 引用 • 75 回帖 • 677 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 1 关注
  • 单点登录

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

    9 引用 • 25 回帖 • 2 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 3 关注
  • Jenkins

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

    54 引用 • 37 回帖 • 3 关注
  • 友情链接

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

    24 引用 • 373 回帖
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 739 关注
  • Bootstrap

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

    18 引用 • 33 回帖 • 646 关注
  • Visio
    1 引用 • 2 回帖 • 1 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 7 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 3 关注
  • Excel
    31 引用 • 28 回帖 • 1 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    175 引用 • 1228 回帖 • 4 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 543 回帖 • 5 关注
  • Access
    1 引用 • 3 回帖 • 4 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 1 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 58 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    6 引用 • 143 回帖 • 1 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 147 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 4 关注