导入的.sy 文档后,移动文档(为了排序),出现文件已经存在的问题

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

image.png

问题描述

如上图。我从别处导出一个名为 fp.sy 的压缩包文件,然后把它导入到另一个 siyuan 客户端,导入步骤是:我先在 siyuan 客户端中新建笔记本,命名为 fp;然后导入 fp.sy 的压缩包到该笔记本

出现如下问题:

在新的 siyuan 客户端中,调整 fp 笔记本下的文档排列顺序,然后出现上述图中的文件已存在问题;

但是,在该 fp 笔记本中新建文档,然后移动新建文档,不存在“文件已存在的问题”。

  • 思源笔记

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

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

    25077 引用 • 103364 回帖
4 操作
fengjiannju 在 2022-11-16 14:59:21 更新了该帖
fengjiannju 在 2022-11-16 14:56:14 更新了该帖
fengjiannju 在 2022-11-16 14:54:16 更新了该帖
fengjiannju 在 2022-11-16 14:52:37 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 我这里测试没能重现问题。

    1 回复
  • fengjiannju

    刚才我又试了一次,还是有 bug

    我认为,背后原因可能是,我导出的内容,有跨笔记本引用。

    我导出的 siyuan1 客户端中的 fp 笔记本,但是 fp 中某些笔记引用了 siyuan1 中的其他笔记本中的内容。这样把到处的 fp 导入到 siyuan2 客户端:可能导致上述问题,

    另外我还发现,导入到 siyuan2 中的 fp 笔记本内的某些文档丢失名字,成为 Untitle。

    担心将来索引效率问题

    我想导出,是因为担心数据量越来越大后,影响索引效率。

    请教下,如果未来数据量太大,我还想保持高速索引,可以通过使用更强大的 cpu(多核心、更高主频)和更大内存来并行查找索引中内容来提高效率吗?
    我粗略了解一些数据库索引原理,关键就是在内存中查找数据。那理论上性能更强劲 cpu 配合更大内存,可以解决索引问题?
    如果我的想法正确,那我就不使用导出功能了,将来数据量太大影响检索效率,上更强劲的 cpu、更大频率更高的内存即可解决,就不用把数据分拆到好几个 siyuan 客户端了。

    我现在用着索引太爽了,就怕将来不爽了痛苦。所以现在就得想好到底是把数据分开来,还是将来上更强劲的硬件。

    1 回复
  • 刚刚我测试了跨笔记本引用再导出,也没有能重现问题,跨笔记本会把引用的文档一并导出的。

    至于性能问题,任何软件都有一定的上限,但是作为前期使用不必太有顾虑,可以按照一个月或者三个月这样的周期测算一下数据增长情况,然后预估按照这个增长能够支持多久,如果是几年的话我觉得近期就没有必要太在乎性能影响了,几年以后升级一下硬件可能就解决问题了。

    如果实在有顾虑,建议通过拆分笔记本或者工作空间来使用,但是我个人觉得这样用的话比较累,而且过度的分类规则也是种自我设限,没有太大必要。

    对于数据库的性能,在个人电脑上差不多就是几十万到百万条记录差不多能够在可以接受的性能范围内,再多的话我觉得也没有多少工具能够支持全文搜索了,不信的话你可以找一些笔记软件测试一下性能,当文档数量上万以后看看全文搜索的性能差异,我相信思源还是很难能打的。

    1 回复
  • fengjiannju 1

    补充说明:我认为是 linux、docker 版文件处理机制问题,理由如下

    现在的情况是:siyuan2 客户端部署在 linux mint 上的 docker,而移动文件排序产生“文件已存在”的问题。【这个问题产生的原因:就是我有两个 siyuan1、siyuan2 运行在 docker,且他们的工作空间是独立的。我在网页端把 siyuan1 的文件导出,再到网页端导入到 siyuan2】

    如下图所示,我在 siyuan2 客户端把 2022-11-11 文档移动到 2022-11-14 上方,立马报错,来回移动两个文件顺讯,一直报错,但是文件顺序的确能移动了。只是不爽!

    image.png

    随后做了如下测试:

    将 siyuan2 的数据同步到云端后,关闭容器:sudo docker stop siyuan2。
    再在 win10 上安装全新的 siyuan 2.5.0 客户端,,从云端同步数据库,同步完毕后,win10 客户端移动同样的文件:将 2022-11-11 和 2022-11-14 来回移动顺序,不会出错——不会出现“文件已存在”的问题。如下图
    同步,退出 win10 siyuan。

    image.png

    在 linux 上,再 run 一个新的 siyuan3 客户端(开辟全新、独立的工作空间),导入秘钥、并把云端数据同步下来,再来回移动同样的文件的顺序(2022-11-11 和 2022-11-15),又出现文件已存在的问题。

    综上,我认为原因可能是:

    1. docker 客户端下,与移动文件进行排序相关的文件处理过程有错,与 win10 下的处理过程不同,即 win10 的正确,docker 或者 linux 的有错
    2. 或者与移动文件进行排序相关的文件处理过程没错(win10 docker linux 都正确),但是 docker、linux 客户端会误发出“文件已存在”的警告,而 win10 版本不会发出警告——即,当对文件进行移动排序时,如果文件实际存放位置没有发生变化,则此时 linux、docker 客户端的底层的文件操作函数返回“文件已存在,移动失败”(但不影响 siyuan 文档树内的文档排序调整结果),而 win10 系统下的底层文件操作函数不会发出警告。

    @88250

    1 回复
    2 操作
    fengjiannju 在 2022-11-17 10:22:32 更新了该回帖
    fengjiannju 在 2022-11-17 10:21:44 更新了该回帖
  • 理论上内核是 golang 跨平台编译的,不应该有这个问题,我们先记录一下,后续看是否能够定位到,感谢反馈。

    1 回复
  • fengjiannju 1

    再次补充说明

    经过我再次测试,发现:

    docker 端通过网页,问题根源是:如果被移动的文档下面还有子文档,则会提示、警告“文件已存在”问题,该提示、警告不影响文档移动、排序。如果被移动重排序的文档下方没有子文档,则不会提示、警告“文件已存在”

    上述问题,win10 桌面客户端不存在。

    image.png

    1 回复
  • 感谢反馈,这个问题我们先记录 Issue #6634 · siyuan-note/siyuan

请输入回帖内容 ...

推荐标签 标签

  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 76 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 61 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 395 关注
  • Anytype
    3 引用 • 31 回帖 • 14 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 4 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 2 关注
  • 分享

    有什么新发现就分享给大家吧!

    247 引用 • 1794 回帖 • 1 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 502 关注
  • uTools

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

    7 引用 • 27 回帖
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 678 关注
  • OpenResty

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

    17 引用 • 54 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 2 关注
  • OpenCV
    15 引用 • 36 回帖
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    161 引用 • 306 回帖
  • Access
    1 引用 • 3 回帖 • 3 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    239 引用 • 224 回帖
  • Word
    13 引用 • 40 回帖
  • Visio
    1 引用 • 2 回帖
  • BAE

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

    19 引用 • 75 回帖 • 667 关注
  • 支付宝

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

    29 引用 • 347 回帖
  • Ngui

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

    7 引用 • 9 回帖 • 401 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 388 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    127 引用 • 169 回帖
  • IDEA

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

    181 引用 • 400 回帖
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖
  • CAP

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

    12 引用 • 5 回帖 • 636 关注