Subversion(SVN) 是一个广泛使用的文件版本控制系統, 它会记住每一次文件的改动。 你可以浏览文件的历史版本,也可以把文件恢复到旧的版本,或者通过SVN客户端精确比较两个版本之间做了哪些改动。
SVN具有非常先进的稳定性和协同工作能力,除此之外还提供了许多重要功能: 举例来说, 有身份认证, 权限控制等, 以及文件库浏览等等。
下面我们就来介绍如何在OnceAir上创建SVN数据仓库服务。
使用svn前需要确保您的服务器上安装了subversion组件。
apt-get install subversion
创建数据仓库
点击网盘桌面上的 “SVN 服务器”,先指定SVN仓库的主目录,点击选择,在弹出的文件浏览器选择一个空目录或右键创建新目录。选择完成后,点击确定,保存主目录地址。
点击添加进入添加新的数据仓库页面,名称最好使用英文,用户列表选择一个OnceAir中的用户,然后点击保存。
保存之后,在列表中可以看到刚才创建的仓库。 访问地址为: svn://192.168.0.101/onceair ,之后我们就可以用SVN客户端,通过这个地址来使用这个数据仓库。
我们还要确定SVN服务是开启的,如果不是点击“运行”即可改变状态为运行中。
下载TortoiseSVN客户端
TortoiseSVN通过图形化界面可以方便快捷地实现SVN的各种功能,而不需要记住繁琐的命令。
首先在电脑上下载并安装TortoiseSVN: https://tortoisesvn.net/downloads.zh.html 我们这里下载的是英文版,过程略。
本地 Checkout(提取)仓库
安装完TortoiseSVN后,在Windows浏览器空白地方点击鼠标右键,可以看到 SVN Check 等选项。点击它,我们先从网盘仓库中Checkout提取出文件。
在 Url of repository(数据仓库地址)中填入,我们刚才记住的SVN访问地址。HEAD version代表直接Check out签出最新版本,您好也可以指定历史版本号,这里直接点击OK。
之后会弹出认证对话框,我们输入的用户名newghost及其onceair密码。
认证成功后,会显示出 Check out(提取或签出)的文件列表。因为是刚创建的数据仓库,所以是第0个版本,没有任何文件。而且当前目录会多出一个.svn的隐藏文件夹。
本地 Commit(提交)文档
我们可以向仓库Commit(提交)文件,比如我们写好一个名叫 blog.article.js 的文件,点击鼠标右键,点击 Svn Commit(提交)。
选择之后会弹出当前仓库哪些文件做了修改,我们在 Message 中写好日志,方便以后查看历史版本,并勾选新添加的 blog.article.js 点击OK。
此时 blog.article.js 已经提交成功了,版本号也升为了 1。
本地 Update (更新) 文档
当一个用户提交了瓣版本号,另一个用户可以用SVN Update来更新,比如这位用户刚刚 checkout(提取)了第0个版本,他在使用或提交前就应该先检查一下是不是最新版,这里鼠标右键并点击“SVN Update“更新本地版本。
之后,blog.article.js 也出现在了这位用户的电脑上。版本更新成功。
本地 diff (比较) 文档
TortoiseSVN提供了文件diff(比较或对比)功能,能让您详细浏览变动的细节,比如我们这里对blog.article.js进行了修改,然后这个文件的图标会变成红色叹息,代表文件有修改。我们在文件上面点击鼠标右键,找到 TortoiseSVN的diff选项,并点击。
此时会弹出修改的细节。
如果觉得没问题,关键对话框,然后 Commit,此时这个仓库的版本会升到2。您不仅可以将当前修改与最新版本做比较,还能将历史版本之间做比较,这里过程略。
本地 merge (合并) 文档
如果有人同时改了 blog.article.js 并是后面提交的,然后他提交时就会显示冲突,因为它是基于一个旧的版本1修改的,这时点OK会提供让你Update(更新)到最新版。
选择Update(更新)之后,会更新本地到最新版本,如果你们修改的是不同的部分,则会自动进行合并。
你只需要用diff(比较)检查一下合并后的文件是不是包含你的改动,然后再次提交即可。
所以使用SVN前要养成Update(更新)的习惯。
相关阅读:
SVN安装使用教程:用OnceAir搭建低功耗文件版本控制服务器
Git模块使用教程:在OnceAir上搭建低功耗Git服务器
使用TortoiseGit和SmartGit图形客户端从OnceAir Git仓库Clone文件
外网访问SVN/Git内网服务及共享文件夹:OnceAir内网TCP穿透使用教程
上一篇: OnceDoc多机文档同步 | 下一篇: Git文件版本控制服务器 |