zoukankan      html  css  js  c++  java
  • 【问题记录】用坚果云同步小书匠数据库发生冲突

    【问题记录】用坚果云同步小书匠数据库发生冲突

    Contents

    问题

    我一直使用小书匠这款软件来编辑Markdown文档,并且使用坚果云同步它的数据文件。在小书匠的关于窗口里边可以看到数据文件的具体路径。

    我在坚果云里同步了里图中的C:UsersqlbosAppDataLocalstorywriter目录。事实证明只要将这个目录放到另一台电脑的相同目录(仅用户名不同),就可以把一台电脑上的所有markdown文档文件以及小书匠软件的设置都完美的迁移到另一台电脑。
    小书匠这个软件是通过其内置的数据库文件来进行数据存储的,它的优点就是可以按照上述方法完整的迁移整个环境;
    但是缺点也很明显,就是这些数据库文件无法被读取,无法从中取出单独的文件进行保存,当数据库文件出现问题时,无法像其他文件一样进行手动修改。
    昨天在实验室的电脑打开小书匠软件,发现左侧边栏的一些写好的文档不见了,我就意识到可能是数据库文件出现了问题。晚上回到寝室,我打开寝室的电脑,发现我前一次使用电脑后没有关闭小书匠软件,就直接将电脑休眠了,可能导致了数据库文件被锁定,这期间我又使用过实验室电脑的小书匠,那么相当于出现了多端同时修改同一个文件的问题,类似于Git当中的代码冲突。

    左侧边栏
    左侧边栏

    解决方法

    关闭坚果云同步

    非常重要!!第一步应该是关闭同步,将两台电脑的坚果云都关闭,或者是直接断网。 如果这时没有关闭同步,会造成两边都出现一堆冲突文件。如果没有同步的话,某一端有可能还没来得及同步,这里的文件可能还是未发生冲突的,直接拷贝出来说不定就可以解决问题。

    解决冲突/回退历史版本

    参考了如下网页

    1. 如何避免和解决文件冲突 | 坚果云博客

    这个链接给出的方法是手动处理冲突,大概意思就是跟git处理冲突的方法一样。不适用,因为这个数据库文件根本没法读写,而且细碎杂乱,不知道哪个文件存的是什么。所以不可能进行手动处理,而且标记为-冲突的文件和没有标记的文件,已经彻底混乱了,也不知道哪一个是正确的文件。

    1. 坚果云功能使用介绍:文件时光机 | 坚果云帮助中心

    想了一下,唯一的办法就是把整个文件夹回退到之前的正常状态,之前OneDrive出现冲突时也是这么解决的。回忆了一下时间点,其实最近三四天都没有产生新的文件,最后一次的新文件应该是9月5日写好的,那么其实我只需要回退到9月6日的状态即可。
    按照上述链接的方法进行操作,也就是把9月5日之后的所有操作历史撤销。

    具体操作方法如上图,一个小技巧是使用Shift可以连续选择,不断往下翻,把日期是9月6日及9月6日以后的操作历史全部撤销。
    这个时候不能打开坚果云(重要!),因为此时我们只是修复了云端的文件,但是本地的文件还是错误的,如果这时打开坚果云,会把这些错误文件上传到云,覆盖云端的正确文件,那么回退的操作就没用了。
    正确的方法是: 不打开坚果云,而是从网页端直接把整个User目录下载下来,然后放置到原本的位置。

    重新打开小书匠,结果和我预期相同,我的文档又回来了!

    总结

    一些经验总结

    1. 文件发生冲突后,第一件事是关闭同步,关闭同步,关闭同步。然后到另一台同步的电脑去看,说不定那里的文件版本是前一段时间的正确版本,如果这样的话,可以直接把这个正确版本文件拷贝出来。如果同步了,那么冲突的文件就会同步到所有电脑上,就只可以在网页端找回历史版本了。
    2. 如果本地的文件都出现了问题,则在网页端的操作历史一栏批量撤销历史操作,回退到一个文件版本正确的时间点。
    3. 小书匠的数据库文件并不适合使用坚果云同步。之后准备取消对数据库文件的同步。
      • 很容易发生冲突。如果其中一台电脑忘记关闭小书匠就休眠,那么这些文件就被锁定。这时在另一台电脑使用小书匠,必定发生冲突。
      • 冲突不好解决。如果是word文档之类的文件,可以按照官网所说的,自己手动编辑,恢复到想要的正确状态。但是这个数据库文件是无法读写,无法编辑的,出现冲突后,唯一的办法就是把整个目录回退。
    4. 小书匠的文件必须另存到本地,同时备份到github之类的地方。小书匠默认是不会保存md文件的,所有数据都是存在自带的数据库里边。这其实很不科学,一旦数据库文件出现错误,是不可逆的。所以必须养成习惯,每次写完文档,将md文件保存到本地目录,坚果云同步也只需要同步保存md文件的目录即可。最好再使用git进行管理,定期上传到github私有仓库,以防万一。
  • 相关阅读:
    java几种基本排序算法
    Java 数组
    java自增(自减)运算符
    java数据类型
    java变量
    java注释
    c语言数字图像处理(十):阈值处理
    c语言数字图像处理(九):边缘检测
    c语言数字图像处理(五):空间滤波
    c语言数字图像处理(八):噪声模型及均值滤波器
  • 原文地址:https://www.cnblogs.com/Howfars/p/13637246.html
Copyright © 2011-2022 走看看