思源笔记的同步方法

本贴最后更新于 1434 天前,其中的信息可能已经时移世异

首先关键部位:

  1. 工作空间 data 文件夹
  2. git 程序
  3. 上面完工就万事俱备了

gitee 同步

  1. 新建私有仓库,此仓库数据存的就是你得思源数据目录里的东西
    image20210718142108fhs9m5j.png
  2. 进行 git 授权
  3. 看来 D 大这个思源同步 data 目录里只是能保证数据有,但是想让家里电脑或者公司使用同一份,这不太现实,因为每打开一次不管你有没有改变数据,思源 data 数据对应的 git 目录就有改变,
    image.png

甚至没有改动得笔记,配置文件都会有变更,git 同步终究对于思源来说只是备份,同步远远达不到完善,额……
image.png

#已有仓库
cd D:\SiYuanData
git remote add origin https://gitee.com/cuijianzhe/ssgage.git
git push -u origin master

写个同步程序

其实无非就是把 git 自己完成而已,这其中有一个问题,刚改完建议不要马上执行同步,因为 D:\siyuan\data\.siyuan\conf.json 这个文件好像还没修正好时间数据,需耐心等待他完成,不过我的程序已在等待……

import os
import time
from subprocess import call
GIT_BASE_DIR = 'D:\siyuan'
gitdate = time.strftime("%Y%m%d%H%M%S", time.localtime())
GIT_DIR_DATA = GIT_BASE_DIR + '\data\.siyuan\conf.json'
choice_list = ['更新','上传']
def git_init():
    os.chdir(GIT_BASE_DIR)
    git_init_cmd = "git init ."
    git_add_cmd = "git add -A"
    git_commit_cmd = "git commit -m {}".format(gitdate)
    git_pull_cmd = "git pull origin master"
    git_push_cmd = "git push origin master"
    call(
        git_init_cmd + "&&" +
        git_add_cmd + "&&" +
        git_commit_cmd + "&&" +
        git_pull_cmd + "&&" +
        git_push_cmd,
        shell=True
    )

def git_update():
    os.chdir(GIT_BASE_DIR)
    git_pull_cmd = "git pull origin master"
    call(
        git_pull_cmd,
        shell=True
    )

def file_or_open():
    try:
        with open(GIT_DIR_DATA, 'r') as f:
            context = f.read()
        return context
    except PermissionError as error:
        return False

if __name__ == "__main__":
    while True:
        context = file_or_open()
        if context:
            for num, char in enumerate(choice_list):
                print(num, char)
            while True:
                git_num = input('配置修正已完成,请按照以上提示输入相应的序号:')
                if git_num == '0':
                    git_update()
                    time.sleep(5)
                    break
                if git_num == '1':
                    git_init()
                    time.sleep(5)
                    break
                else:
                    print('输入错误,请重新输入')
            break
        else:
            print('正在尝试打开并修正配置文件,请稍等……')
            time.sleep(5)

如此,每次更新完后,手动执行一下程序即可,千万不要忘记哦……

还有,windows 可以打包,我已打包完成,直接点击一下 exe 即可。

image.png

  • 思源笔记

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

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

    26030 引用 • 108019 回帖 • 1 关注
4 操作
cuijianzhe 在 2021-07-18 22:03:41 更新了该帖
cuijianzhe 在 2021-07-18 21:06:56 更新了该帖
cuijianzhe 在 2021-07-18 20:30:56 更新了该帖
cuijianzhe 在 2021-07-18 14:56:16 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 我只同步 asset 和笔记文件夹. 特别是 conf 同步到别的地方容易乱.

    1 回复
  • conf 这个文件夹也得同步,不然读不到其他的数据,里面有文件树结构我看着

    1 回复
  • .siyuan 目录下 ,filetree 指的是文件树中,自定义文件排列顺序吧?然后 updated 可能和更新时间有关系?应该不去管也没关系.

    conf 目录里面的那个文件关系,是打开编辑器默认打开的笔记本.

    没有理解使用的不是同一份是什么意思.是和思源自己的备份,同步这些有关系吗?

    1 回复
  • 就是,比如公司电脑和家里电脑,回家后 pull 以后,会有冲突,本地 ip 和公司的一定不一样,这是其中的一个冲突点,除非 conf 里的东西全部不同步,但这样,显得用 git 同步鸡肋,我之前用的 Vnote 完全没问题的,家里还是公司,点击更新正常使用。

cuijianzhe
6 号黑客成员, 2000-03-03 23:22:13 加入 北京

推荐标签 标签

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 149 关注
  • TensorFlow

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

    20 引用 • 19 回帖
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 450 关注
  • MySQL

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

    693 引用 • 537 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    167 引用 • 597 回帖
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    173 引用 • 414 回帖 • 363 关注
  • BAE

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

    19 引用 • 75 回帖 • 677 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 4 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖 • 1 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    947 引用 • 1460 回帖 • 2 关注
  • 架构

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

    142 引用 • 442 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 503 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 675 关注
  • H2

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

    11 引用 • 54 回帖 • 672 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 559 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 1 关注
  • Solidity

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

    3 引用 • 18 回帖 • 438 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 4 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 1 关注
  • 服务器

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

    125 引用 • 585 回帖 • 1 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 1 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    59 引用 • 25 回帖
  • Tomcat

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

    162 引用 • 529 回帖 • 5 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 114 回帖 • 172 关注
  • Anytype
    3 引用 • 31 回帖 • 25 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 555 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2040 回帖 • 1 关注