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

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

image.png

问题描述

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

出现如下问题:

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

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

  • 思源笔记

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

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

    22020 引用 • 87818 回帖 • 3 关注
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

请输入回帖内容 ...

推荐标签 标签

  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 65 回帖 • 452 关注
  • 支付宝

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

    29 引用 • 347 回帖
  • Bootstrap

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

    18 引用 • 33 回帖 • 662 关注
  • 大数据

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

    93 引用 • 113 回帖
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 706 关注
  • Lute

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

    25 引用 • 191 回帖 • 17 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 163 关注
  • 小薇

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

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

    34 引用 • 467 回帖 • 742 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 100 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    25 引用 • 83 回帖
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 347 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 1 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 31 关注
  • Elasticsearch

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

    117 引用 • 99 回帖 • 223 关注
  • 友情链接

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

    24 引用 • 373 回帖 • 1 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 164 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    5 引用 • 62 回帖
  • FlowUs

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

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

    1 引用
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 5 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 127 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 18 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 47 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 1 关注
  • Windows

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

    221 引用 • 473 回帖
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    52 引用 • 40 回帖
  • 分享

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

    247 引用 • 1792 回帖 • 7 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 5 关注