高效管理文档,在NAS上搭建个SVN吧,让工作学习更加得心应手
前言
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。程序员的工作输出是代码,设计师的工作输出是设计文档,学生们毕业的时候会输出毕业论文,其他职业日常工作中也都少不了使用Office软件输出各种文档。我们都清楚,输出的内容都几乎不可能是一次完成的,期间一定会经历各种修改、迭代、反复。如果以传统的方式保留修改记录,那么你的本地硬盘上一定会存有不同命名的多个相似文件。又或者你只在一个文件上不断演进。无论哪种方式,当你想查看曾经的修改记录,对比不同修改间的变化,又或是回溯到之前的一个版本时,都会变得很困难。如果在这个过程中引入版本控制,所有问题就可以迎刃而解了。
版本控制工具有好几种,对于文档的管理,我认为SVN(Subversion)是最为适合的。无论是团队还是个人,都可以利用SVN高效管理自己的文档,让工作和学习更加得心应手。本文就介绍一下如何在威联通NAS上搭建SVN服务器,并简单介绍如何使用SVN。
SVN服务端的搭建
SVN是一种集中化的版本控制系统,主要是为了解决团队内不同成员协同工作的问题。在这个系统中有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人员都通过客户端连到这台服务器,取出最新的文件或者提交更新。当然,个人用户使用的时候,就当是独享这个服务器了。因此,使用SVN先要搭建服务端。
群晖系统自带SVN套件,搭建起来相对简单。威联通虽然没有自带,但是借助于Docker,我们依然可以轻松搭建起来SVN服务器。Docker镜像使用这个garethflowers/svn-server。打开威联通的Container Station,进入镜像文件页面,点击提取,先把镜像拉下来。服务器那栏我选择阿里云的,具体怎么设置在我以前的文章有提到过,请自行搜索。如果你的网络还不错,直接从官方服务器拉镜像就可以了。镜像名称填写garethflowers/svn-server,版本保持latest就好了。
稍等片刻,镜像文件就下载好了,可以看到,镜像大小只有13.72MB,可谓精简至极,在NAS上运行也不会有太大压力。
接着点击加号创建Container,弹出页面里设置容器的名称,其他可以保持不变。
点击高级设置,在网络那一栏,端口转发主机和容器都设置成3690,其他保持不变。
在共享文件夹那一栏,将NAS上的共享目录映射到容器的/var/opt/snv目录下,我设置的目录为/Public/svn。
然后,其他就没什么好设置的了,就配置了端口和共享文件夹,感觉超级简单是不是。点击创建,并确认参数,我们的SVN服务器就跑起来了。
虽然服务跑起来了,但是想要使用还需要再做点别的事情。SVN是以Repository(档案库)为单元管理文件的。用于团队协作办公时,就可以为不同的小组或者不同的项目分别创建Repository,方便文档的集中管理。管理个人文档的话,当然也需要先创建Repository。目前SVN服务器里并没有创建任何Repository,所以我们这就创建一个。创建Repository需要在命令行下执行一个简单的命令,进入控制台确认NAS的SSH是开启的状态。
然后使用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相应的映射目录文件夹下就生成了一个名为new-repo的目录,里面有一些数据文件和配置文件。
Repository生成后,还需要为使用这个Repository的用户配置权限,主要涉及conf目录下svnserve.conf、passwd、authz三个文件的修改。其中svnserve.conf文件的修改如下图所示,修改的含义分别为:匿名用户不可读写,授权用户可写,密码文件路径设置为passwd文件,访问控制文件设置为passwd文件。其他内容可以不修改。
在passwd中添加用户并设置密码,自己用就设置一个用户就好了,等号前是用户名,等号后是密码。
最后通过authz配置对Repository的访问权限。可以通过设置groups包含多个用户,然后配置刚才创建的new-repo的权限,在下面的示例中,我将admin用户和user2用户组设置为可读写,user1用户组设置为只读。
完成上面的步骤,SVN服务端就算搭建完毕了。主要涉及三个步骤:SVN容器的创建,Repository的创建,Repository的配置,都不是很难的操作,出错的概率也不大。
SVN客户端的使用
创建好了SVN服务端,要想使用的话,我们还需要一个SVN客户端。在Windows平台,SVN客户端最好的选择几乎只有一个——TortoiseSVN,俗称小乌龟。下载地址在这里:tortoisesvn。
TortoiseSVN的安装过程没什么好说的,无脑下一步即可。安装完成后重启一下电脑。
在你的电脑硬盘上随便选择一处目录,点击右键,就可以看到TortoiseSVN的各种操作交互都集成到右键菜单里面了。
选择SVN Checkout,将服务器的仓库拉到本地。仓库地址为svn://NAS-IP/仓库名,我的NAS IP为192.168.123.195,刚才创建的仓库名为new-repo,因此地址栏就填写svn://192.168.123.195/new-repo。设置完毕后点击OK就可以了。
如果上一个章节中你的配置没什么问题,点击OK后应该会弹出授权登录窗口。根据自己的配置,输入用户名和密码。看到下面的提示,就说明仓库Checkout成功了。
可以看到,这个Checkout下来的目录图标上有一个绿色的对号,说明当前本地的内容和服务器保持一致。
接下来,我们就可以将我们需要管理的文档放入这个目录中。新加入的文档,通过在文件上右键点击TortoiseSVN-→Add加入,然后可以看到当前文档的图标变成了加号。
再右键点击SVN Commit将文件上传到服务器,填写一下Message方便记录每次修改。上传成功后可以看到文件的图标也变成了绿色的对号。
当我们对这个文件进行修改的时候,可以看到文件又变成了红色叹号,表明这个文件和服务器版本有差异。如果想把当前这个修改状态同步到服务器,就可以右键点击这个文件,选择SVN Commit,和上面一样,填入Message方便记录每次修改,上传成功后文件的图标又变成了绿色的对号。
就这样,随着你的文件不断的修改,你可以随时把某个修改状态同步到服务器中。当然SVN的强大可不止这一些,通过右键菜单集成的功能,你可以对比本地修改和服务器最新版本之间,或者两个不同提交版本之间的差异。当然并不是所有文件格式都支持差异对比,好在我们常用的word文档是支持的。
你还可以随时查看你的修改记录,并回退到之前任何一个版本上,也可以随时更新到最新的修改版本。
总之,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内存。
接口方面,TVS-951N具备一个千兆网口,一个5GBASE-T网口,一个USB3.0接口、两个USB2.0接口,以及一个HDMI接口。5GBASE-T网口可以轻松让你的内网传输速度达到机械硬盘上限。HDMI接口的存在,也使得这款NAS具备了视频输出的能力。
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服务器,我想一定会给你的学习工作带来不少帮助。




































JasonWu
校验提示文案
请叫我小左
校验提示文案
太平洋里的水
校验提示文案
东西集
校验提示文案
leisurehuang
校验提示文案
Jqin
校验提示文案
一只豪猪
校验提示文案
wmgylc
校验提示文案
RemonKing
校验提示文案
marine1015
校验提示文案
球球骨骨爸爸
校验提示文案
萬華天鏡
校验提示文案
加勒比考斯
校验提示文案
iQuan
校验提示文案
seeyee
校验提示文案
Bloodygod
校验提示文案
lannyyip
校验提示文案
biAji
校验提示文案
加勒比考斯
校验提示文案
删我帖者菊花残
校验提示文案
值友3876713396
校验提示文案
白金会员
校验提示文案
kakabu008
查文档说qsync这个软件的目录下才支持版本控制,非此目录只能做同步,不能版本控制,那问题又来了,在这个软件下面只能个人建私人文件夹且只允许个人访问,管理员建共享文件夹直接跳到别的目录,总归是搞不定团队的版本控制
校验提示文案
chowen
校验提示文案
呆萌的呆呆
校验提示文案
taoxiaozi
校验提示文案
看见如果
校验提示文案
有点值但不太值
校验提示文案
萬華天鏡
校验提示文案
请叫我小左
校验提示文案
JasonWu
校验提示文案
删我帖者菊花残
校验提示文案
加勒比考斯
校验提示文案
RemonKing
校验提示文案
球球骨骨爸爸
校验提示文案
wmgylc
校验提示文案
marine1015
校验提示文案
biAji
校验提示文案
leisurehuang
校验提示文案
lannyyip
校验提示文案