Subversion(SVN) 是一个广泛使用的文件版本控制系統, 它会记住每一次文件的改动。 你可以浏览文件的历史版本,也可以把文件恢复到旧的版本,或者通过SVN客户端精确比较两个版本之间做了哪些改动。
SVN具有非常先进的稳定性和协同工作能力,除此之外还提供了许多重要功能: 举例来说, 有身份认证, 权限控制等, 以及文件库浏览等等。
下面我们就来介绍如何在OnceAir上创建SVN数据仓库服务。
Git是一个开源的分布式版本控制系统,版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了已录下来。每一次文件的改变您都可以借助对比工具,查看与之前版本具体哪一行,哪一个字符做了更改。与常用的版本控制工具SVN不同,它采用了分布式版本库的方式。Git并没有全局的版本号。
您可以在OnceAir上安装Git模块,将其变成一个低功耗的Git服务器。因为Git服务器是基于SSH协议实现的,使用Git或外网访问请勿必更改默认root密码。如果您不会操作,可选择使用相对操作简单的SVN服务器。
安装设置Git模块后,OnceAir则可作为Git服务器使用,此时您可以在电脑通过Git Bash命令行来clone/commit/push/pull文件到数据仓库。
Git也有很多免费的图形化工具可以提高工作效率,简化使用Git命令行的使用难度,这里主要介绍使用TortoiseGit和SmartGit从OnceAir Git仓库签出项目。
如果您的网络分配有公网IP,您可以通过设置路由映射的方式,实现在外网访问内部的OnceAir服务器。但一般的小运营商是没有分配独立公网IP,此时您可以通过内网穿透的方式实现OnceAir网盘的外网访问。下面简单介绍一下如何设置。
OnceDoc 是 OnceAir Nas 内置的知识和文档管理模块,可直接在线编辑文档、表格、Markdown笔记甚至程序代码等,支持全文搜索,具有丰富的权限控制,您可以方便地构建自己的分享文件夹。通过OnceOA客户端,OnceDoc中的团队文件夹可与本地文件时时双向同步,实现多重备份。
OnceAir底层基于模块化Web框架OnceIO和无模式内存数据库OnceDB,每个功能的前端界面、后端逻辑、数据库定义都集中存放在模块本身,禁用或卸载即可删除。您也可以开发自己的功能模块,扩展OnceAir的功能。
单线程的 Node.js 为了充分利用 CPU 的多核特性,采用了 cluster 模块,利用主从模式,生成与 CPU 核心数量相当的子进程,主进程捕获请求随机分配给子进程处理,并负责子进程的崩溃重启。进程与进程之间是不能共享数据的,如果把 Session 存储在内存里,存储在不同进程的内存中的 Session 将无法共享,Session 认证机制会出现问题。例如,用户 A 认证的过程是由进程 1 处理的,那么维持会话的 Session 将保存在进程 1 的内存数据中;用户 A 接下来的请求被分配给进程 2 处理,因为进程 2 没有处理过用户 A 的认证,没有维持这个会话的 Session,所以进程 2 会判断用户 A 并没有授权。这样用户 A 需要多次重复认证访问才能继续下去。
由于 doT.js 模板引擎的整体性能较优,OnceIO 采用 doT.js 作为默认模板引擎。在使用任何一种除了 doT.js 之外的模板引擎之前都需要先用 cmd 在项目文件夹安装这种模板引擎。以使用 Git Bash 安装 EJS 为例,使用的命令是:
$ npm install ejs