高效管理文档,在NAS上搭建个SVN吧

超高校级的囧小平 超高校级的囧小平 2020-09-03 08:47

前言

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。程序员的工作输出是代码,设计师的工作输出是设计文档,学生们毕业的时候会输出毕业论文,其他职业日常工作中也都少不了使用Office软件输出各种文档。我们都清楚,输出的内容都几乎不可能是一次完成的,期间一定会经历各种修改、迭代、反复。如果以传统的方式保留修改记录,那么你的本地硬盘上一定会存有不同命名的多个相似文件。又或者你只在一个文件上不断演进。无论哪种方式,当你想查看曾经的修改记录,对比不同修改间的变化,又或是回溯到之前的一个版本时,都会变得很困难。如果在这个过程中引入版本控制,所有问题就可以迎刃而解了。

版本控制工具有好几种,对于文档的管理,我认为SVN(Subversion)是最为适合的。无论是团队还是个人,都可以利用SVN高效管理自己的文档,让工作和学习更加得心应手。本文就介绍一下如何在威联通NAS上搭建SVN服务器,并简单介绍如何使用SVN。

SVN服务端的搭建

SVN是一种集中化的版本控制系统,主要是为了解决团队内不同成员协同工作的问题。在这个系统中有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人员都通过客户端连到这台服务器,取出最新的文件或者提交更新。当然,个人用户使用的时候,就当是独享这个服务器了。因此,使用SVN先要搭建服务端。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

群晖系统自带SVN套件,搭建起来相对简单。威联通虽然没有自带,但是借助于Docker,我们依然可以轻松搭建起来SVN服务器。Docker镜像使用这个https://hub.docker.com/r/garethflowers/svn-server。打开威联通的Container Station,进入镜像文件页面,点击提取,先把镜像拉下来。服务器那栏我选择阿里云的,具体怎么设置在我以前的文章有提到过,请自行搜索。如果你的网络还不错,直接从官方服务器拉镜像就可以了。镜像名称填写garethflowers/svn-server,版本保持latest就好了。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

稍等片刻,镜像文件就下载好了,可以看到,镜像大小只有13.72MB,可谓精简至极,在NAS上运行也不会有太大压力。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

接着点击加号创建Container,弹出页面里设置容器的名称,其他可以保持不变。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

点击高级设置,在网络那一栏,端口转发主机和容器都设置成3690,其他保持不变。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

在共享文件夹那一栏,将NAS上的共享目录映射到容器的/var/opt/snv目录下,我设置的目录为/Public/svn。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

然后,其他就没什么好设置的了,就配置了端口和共享文件夹,感觉超级简单是不是。点击创建,并确认参数,我们的SVN服务器就跑起来了。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

虽然服务跑起来了,但是想要使用还需要再做点别的事情。SVN是以Repository(档案库)为单元管理文件的。用于团队协作办公时,就可以为不同的小组或者不同的项目分别创建Repository,方便文档的集中管理。管理个人文档的话,当然也需要先创建Repository。目前SVN服务器里并没有创建任何Repository,所以我们这就创建一个。创建Repository需要在命令行下执行一个简单的命令,进入控制台确认NAS的SSH是开启的状态。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

然后使用SSH工具进入NAS终端,我个人习惯使用Termius,其他常见的还有Putty、X-shell、SecureCRT、MobaXterm等,都可以选择。进入NAS终端后,执行下面的命令即可:

docker exec -it svn-server svnadmin create new-repo

这条命令的意义就是进入容器终端,然后执行svnadmin 命令创建一个新的Repository。svn-server就是上面创建的容器的名称,svnadmin create后面跟的就是新Repository的名称,可以自行设置。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

执行完上面的命令后,就可以看到NAS相应的映射目录文件夹下就生成了一个名为new-repo的目录,里面有一些数据文件和配置文件。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

Repository生成后,还需要为使用这个Repository的用户配置权限,主要涉及conf目录下svnserve.conf、passwd、authz三个文件的修改。其中svnserve.conf文件的修改如下图所示,修改的含义分别为:匿名用户不可读写,授权用户可写,密码文件路径设置为passwd文件,访问控制文件设置为passwd文件。其他内容可以不修改。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

passwd中添加用户并设置密码,自己用就设置一个用户就好了,等号前是用户名,等号后是密码。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

最后通过authz配置对Repository的访问权限。可以通过设置groups包含多个用户,然后配置刚才创建的new-repo的权限,在下面的示例中,我将admin用户和user2用户组设置为可读写,user1用户组设置为只读。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

完成上面的步骤,SVN服务端就算搭建完毕了。主要涉及三个步骤:SVN容器的创建,Repository的创建,Repository的配置,都不是很难的操作,出错的概率也不大。

SVN客户端的使用

创建好了SVN服务端,要想使用的话,我们还需要一个SVN客户端。在Windows平台,SVN客户端最好的选择几乎只有一个——TortoiseSVN,俗称小乌龟。下载地址在这里:https://tortoisesvn.net/downloads.html

高效管理文档,在NAS上搭建个SVN吧_新浪众测

TortoiseSVN的安装过程没什么好说的,无脑下一步即可。安装完成后重启一下电脑。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

在你的电脑硬盘上随便选择一处目录,点击右键,就可以看到TortoiseSVN的各种操作交互都集成到右键菜单里面了。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

选择SVN Checkout,将服务器的仓库拉到本地。仓库地址为svn://NAS-IP/仓库名,我的NAS IP为192.168.123.195,刚才创建的仓库名为new-repo,因此地址栏就填写svn://192.168.123.195/new-repo。设置完毕后点击OK就可以了。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

如果上一个章节中你的配置没什么问题,点击OK后应该会弹出授权登录窗口。根据自己的配置,输入用户名和密码。看到下面的提示,就说明仓库Checkout成功了。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

高效管理文档,在NAS上搭建个SVN吧_新浪众测

可以看到,这个Checkout下来的目录图标上有一个绿色的对号,说明当前本地的内容和服务器保持一致。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

接下来,我们就可以将我们需要管理的文档放入这个目录中。新加入的文档,通过在文件上右键点击TortoiseSVN--->Add加入,然后可以看到当前文档的图标变成了加号。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

高效管理文档,在NAS上搭建个SVN吧_新浪众测

再右键点击SVN Commit将文件上传到服务器,填写一下Message方便记录每次修改。上传成功后可以看到文件的图标也变成了绿色的对号。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

高效管理文档,在NAS上搭建个SVN吧_新浪众测

高效管理文档,在NAS上搭建个SVN吧_新浪众测

当我们对这个文件进行修改的时候,可以看到文件又变成了红色叹号,表明这个文件和服务器版本有差异。如果想把当前这个修改状态同步到服务器,就可以右键点击这个文件,选择SVN Commit,和上面一样,填入Message方便记录每次修改,上传成功后文件的图标又变成了绿色的对号。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

高效管理文档,在NAS上搭建个SVN吧_新浪众测

高效管理文档,在NAS上搭建个SVN吧_新浪众测

就这样,随着你的文件不断的修改,你可以随时把某个修改状态同步到服务器中。当然SVN的强大可不止这一些,通过右键菜单集成的功能,你可以对比本地修改和服务器最新版本之间,或者两个不同提交版本之间的差异。当然并不是所有文件格式都支持差异对比,好在我们常用的word文档是支持的。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

高效管理文档,在NAS上搭建个SVN吧_新浪众测

你还可以随时查看你的修改记录,并回退到之前任何一个版本上,也可以随时更新到最新的修改版本。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

高效管理文档,在NAS上搭建个SVN吧_新浪众测

总之,SVN作为一个老牌版本控制系统,面对文档的管理,无论是个人还是团队,都可以轻松胜任。上面也只是介绍了TortoiseSVN的最基本的几个使用操作,其功能可不止这些,本文受限于篇幅没法一一介绍,还需要大家自行摸索。

威联通TVS-951N简介

搭建这个SVN服务器我用的是威联通TVS-951N。这是一款九盘位的NAS,其中五个3.5寸硬盘盘位,四个2.5寸硬盘盘位。TVS-951N的CPU为Intel Celeron 3865U处理器,采用Kaby Lake架构,具备两个核心,主频为1.8GHz。内置了Intel HD 610 显示芯片,标配了4GB内存。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

高效管理文档,在NAS上搭建个SVN吧_新浪众测

接口方面,TVS-951N具备一个千兆网口,一个5GBASE-T网口,一个USB3.0接口、两个USB2.0接口,以及一个HDMI接口。5GBASE-T网口可以轻松让你的内网传输速度达到机械硬盘上限。HDMI接口的存在,也使得这款NAS具备了视频输出的能力。

高效管理文档,在NAS上搭建个SVN吧_新浪众测

TVS-951N CPU的性能不算是很强,但是用在NAS这种场合也还算可以胜任。想折腾的话建议配上8GB内存。这款NAS最大的亮点应该就是盘位多,以及支持5GBASE-T网口了。四个2.5寸硬盘盘位可以装上几块固态硬盘,配合QNAP QTS的Qtier技术,可以在存储容量和读写速度上得到很好的平衡。如果对内网传输速度有着更高要求,对存储容量有更大需求,TVS-951N是个很不错的选择。最近威联通陆续发布了几款搭载全新硬件的NAS新品,TVS-951N作为一款老机型,价格几乎已经探底了,可谓性价比十足。

总结

最后再回到版本控制系统。除了SVN,其实大部分人对GIT更熟悉一些,此外还有收费的版本控制系统Perforce。GIT常用于代码的管理,GitHub、GitLab这些网站,以及各大公司内网搭建的Gerrit,都是基于Git的版本控制系统。收费的Perforce估计很少有人听说过,一般是大公司用来管理大规模代码库或者管理大文件的。SVN当然也可以用来管理代码,我毕业后第一家公司就是用SVN管理代码的,但是,我觉得SVN用来管理文档更合适一些。

本文介绍了如何再威联通NAS上搭建和配置SVN服务器,也简单说明了TortoiseSVN的基本使用方法。我读研阶段,实验室就搭建了SVN服务器,用来管理同学们的文档和代码。有了SVN帮我们进行版本控制,我们在修改文档时,就可以更加专注于内容输出,而不用担心文件命名混乱,不用担心文件丢失,还可以随时查看修改,随时进行版本还原。我们需要做的,只是记得定时提交修改就可以了。如果你也有一台NA,不妨试试搭建个SVN服务器,我想一定会给你的学习工作带来不少帮助。

(声明: 本文著作权归作者本人和新浪众测共同所有,未经许可不得转载。本文仅代表作者观点,不代表新浪众测立场。)
0 0
分享 商务合作 返回
微博 QQ空间 微信