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

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

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

image.png

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

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

image.png

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

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

image.png

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

  • 思源笔记

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

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

    24815 引用 • 102085 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 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
索性去不顾一切,肆意赴未知明天 深圳

推荐标签 标签

  • 印象笔记
    3 引用 • 16 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    693 引用 • 537 回帖
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    28 引用 • 226 回帖 • 135 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 13 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 1 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 630 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    556 引用 • 674 回帖
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 157 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 610 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    36 引用 • 155 回帖
  • 30Seconds

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

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

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 459 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 109 关注
  • Word
    13 引用 • 40 回帖 • 1 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • Pipe

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

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

    132 引用 • 1115 回帖 • 120 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 805 关注
  • 服务

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

    41 引用 • 24 回帖
  • Visio
    1 引用 • 2 回帖
  • 倾城之链
    23 引用 • 66 回帖 • 158 关注
  • OkHttp

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

    16 引用 • 6 回帖 • 83 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 431 关注
  • 心情

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

    59 引用 • 369 回帖
  • 游戏

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

    180 引用 • 821 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 1 关注
  • V2Ray
    1 引用 • 15 回帖 • 1 关注