切换云端同步空间后,最新的本地会被老旧的云端镜像覆盖掉

我原来和七牛云的 c1 云端目录保持自动同步,如此保持到 t1 时刻,
随后我切换同步到了腾讯智能云的 c2 云端目录,如此运行到 t2 时刻;
然后 t2 时刻,我又切回到和七牛云的 c1 同步,选的自动同步模式

结果,本地工作空间(t2 时刻的快照)被云端七牛云的 t1 时刻的快照给覆盖了,可是,本地的快照日期 t2>t1,应该是它覆盖到云端的 t1 啊

是不是软件默认“首次同步选择以云端为准”?

  • 思源笔记

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

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

    20240 引用 • 78276 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 88250

    是不是软件默认“首次同步选择以云端为准”?

    不是,在 c2 云端 t2 时切换 c1 云端,存在两种情况:

    1. 本地已经同步过一次才切换,此时本地数据并没有发生变化,所以 c1 云端 latest 快照和本地对比后就以 c1 latest 为准了
    2. 本地未同步就进行切换,此时本地数据发生了变化,那么本地的这些变化会和 c1 latest 产生差异,合并差异后同步
    2 回复
  • 本地工作空间(t2 时刻的快照)被云端七牛云的 t1 时刻的快照给覆盖了

    所以是什么造成了这种情况?

    1 回复
  • 88250

    按楼主的描述应该是前面的情况 1。

    1 回复
  • 那这样的话是不是还能改进?

    1 回复
  • 88250 1

    这个没有可改进的了,因为情况 1 是基本的同步原理,本地没有变化的情况就肯定是要和云端保持一致,不然如何同步呢?

    1 回复
  • 是哦。那楼主这种情况是不是得在切换云端目录之前改用「完全手动同步」才安全?

    或者说切换云端目录之后是不是应该阻止首次自动同步,让用户选择一下是继续自动同步还是上传本地/下载云端一次?

  • fengjiannju 2 评论

    我的是情况 1,被云端的覆盖了。

    本地和 c2 同步后,没有任何修改本地文件的行为,然后再和 c1 同步,就这么被 c1 覆盖了,这不合逻辑啊。因为本地的快照更新啊。

    这就无法改进了?

    1 回复
    因为快照是可以回滚和删除的,快照时间不能作为判断依据,所以在本地没变化的情况下要以云端为准。
    JeffreyChen
    @88250 我想了想,如果将回滚和删除快照的操作也记录到文件中,是不是就能判断实际上是哪一端的数据更新了?
    JeffreyChen
  • 88250
    • 快照的时间是本地时间,所以用这个时间判断新旧并不安全(只有极少数的情况使用了本地设备时间,具体细节可参考 https://github.com/siyuan-note/siyuan/issues/7403)
    • 之前已经解释过了,同步的目的就是为了保持数据一致,在本地没有变化的情况下那肯定就是和云端保持一致了,你如果一定需要本地覆盖云端,可以使用 完全手动同步 模式,这样可以自由按需选择同步方向

    @JeffreyChen

    我想了想,如果将回滚和删除快照的操作也记录到文件中,是不是就能判断实际上是哪一端的数据更新了?

    我不太清楚你指的“记录到文件中”是如何记录,记录的文件是否需要同步?记录的文件是否会冲突?

    1 回复
  • 我想了想,如果将回滚和删除快照的操作也记录到文件中,是不是就能判断实际上是哪一端的数据更新了?

    我不太清楚你指的“记录到文件中”是如何记录,记录的文件是否需要同步?记录的文件是否会冲突?

    我不了解思源的同步机制,所以我也不知道,只是提出一种可能的方向


    切换云端目录之后是不是应该阻止首次自动同步,让用户选择一下是继续自动同步还是上传本地/下载云端一次?

    那这个怎么样?

    1 回复
  • 88250

    切换云端目录后可以考虑禁用同步,但是这里已经提示过:

    image.png

    所以我认为这个场景可以不做处理,就算用户这样用了,也能够使用快照回滚进行兜底。

    总的来说,目前在某些边界场景或者极端场景上投入太多开发精力对我们来说并不明智,我们得把时间精力花在大部分用户都用得到的常规场景上,打磨这些日常使用场景的用户体验意义更大一些。

    楼主,你认为呢?

请输入回帖内容 ...

推荐标签 标签

  • Hprose

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

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

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

    18 引用 • 54 回帖
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 50 关注
  • FreeMarker

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

    23 引用 • 20 回帖 • 430 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖
  • VirtualBox

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

    10 引用 • 2 回帖 • 10 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖
  • 倾城之链
    23 引用 • 66 回帖 • 120 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖
  • 游戏

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

    171 引用 • 814 回帖
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    21 引用 • 140 回帖 • 12 关注
  • 博客

    记录并分享人生的经历。

    272 引用 • 2386 回帖
  • 小薇

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

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

    34 引用 • 467 回帖 • 712 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 580 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    544 引用 • 3531 回帖
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 3 关注
  • Wide

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

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

    30 引用 • 218 回帖 • 618 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    103 引用 • 126 回帖 • 442 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    10 引用 • 88 回帖
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 430 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 605 关注
  • JavaScript

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

    713 引用 • 1174 回帖 • 96 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    116 引用 • 99 回帖 • 249 关注
  • H2

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

    11 引用 • 54 回帖 • 645 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    141 引用 • 441 回帖
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 19 关注