引述
我不是码农,接触SVN服务器是从研究生阶段在中国船级社(北京)研发中心开展软件测试项目开始的,彼时SVN服务器主要用于测试文档的管理工作。个人搭建SVN服务器是为了便于自己完成对于常用资料的保存和更新。
先说一下服务器,本人租用的是vultr 5刀每月的Tokyo服务器,vultr服务器的特点时分时收费,较为灵活,且Tokyo离国内较近,延迟完全可以接受。当然如果没有开眼看世界的需要,也可选择国内服务器。
5刀每月的服务器配置情况:
CPU: 1 vCore
RAM: 1024 MB
Storage: 25 GB SSD
Bandwidth: 4.83 GB of 1000 GB
作为服务器,当然选择口碑王者 CentOS ,作者用的是 CentOS 7 x64,由于本人非计算机专业,更多的也不清楚,一般都是以满足基本需求为最高标准,够用方便就OK了。
下面不废话,快速进入SVN服务器的搭建和使用部分。声明一下:以下过程全部进行过测试,不要怀疑下述配置的有效性,避免浪费不必要的时间!
配置服务器端
1. yum命令行安装
yum install subversion
2. 创建svn仓库
mkdir -p /svn
3. 创建project项目
svnadmin create /svn/project
此时创建生成了svn库文件有
conf(配置文件):仓库的配置文件(仓库的用户访问帐号、权限等)
db:所有版本控制的数据存放文件
format:文本文件,里面只放了一个整数,表示当前文件库配置的版本号
hookes(钩子文件夹):脚本文件的目录
locks:用放置hook来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端
README.txt
4. 配置svn仓库,修改conf文件里的配置文件
配置账号密码文件vi passwd:
尾行添加:user=passwd( 前面的是用户名,后面的是密码)
配置权限vi authz:
尾行添加:[/]user=rw*=
5. 取消svnserve.conf文件中下列内容前注释标识符
anon-access = none 不允许匿名用户
auth-access = write 授权用户可写
password-db = passwd 用户文件是哪个
authz-db = authz 鉴权文件是哪个
realm = /svn 你设置的项目目录
6. 配置钩子文件,用于将上传的文件更新到网站目录
cd /svn/hooks
cp post-commit.tmpl post-commit
编辑配置文件vi post-commit:
尾行添加
export.UTF-8SVN_PATH=/usr/binWEB_PATH=/svn/repository 设置仓库地址
SVN_USER=user 设置的svn用户名
SVN_PASS=passwd 设置的svn密码
echo 'date "+%Y-%m-%d %H:%M:%S" '>> $LOG_PATH
echo 'whoami' ,$REPOS,$REV >> $LOG_PATH
7. 开启svn服务
centos开机自动启动SVN服务的方法
注意:我们在用终端操作的时候,可直接用svnserve -d -r /svn命令启动SVN,但是 在/etc/rc.d/rc.local 文件中必须写上完整的路径,使用whereis svnserve命令查找获取svnserve完整路径。通常svnserve的完整路径为/usr/bin/svnserve
编辑rc.local文件:vi /etc/rc.d/rc.local
加入如下启动命令:/usr/bin/svnserve -d -r /svn
8. 为rc.local获取自启动权限
chmod -R 777 /etc/rc.d/rc.local
9. 进入网站目录,进行服务器端检出
作用:锁定仓库URL,更换项目地址时一定要重新checkout
cd /svn/repository
svn checkout svn://45.76.222.248 端口svn默认为3690
配置PC端
PC端安装TortoiseSVN进行图形化交互配置,TortoiseSVN安装过程按指引完成个性化安装,安装完成后检查以下两项确保安装成功:
配置TortoiseSVN/bin路径进入环境变量Path
检查右键选项
使用过程选择目标文件夹右击checkout,完成URL of repsitory和Checkout directory配置。
其中:URL of repository通过进入服务器端配置hooks后由命令svn info获取。
这里需要注意:目标文件夹一定要为空文件夹,否则无法进行commit和update操作。
PC端SVN服务器的使用
右击目标文件夹,选择svn submit/svn update
文件颜色标志
蓝色加号:本地的.svn对该文件有形成管理(远程仓库 还没有该文件记录),该文件已经执行add操作
绿色对号:本地文件、.svn管理的版本文件、远程仓库文件 三者内容完全一致
红色叹号:本地文件与.svn和仓库文件不一致(用户自己修改了该已经提交过的文件)
黄色叹号:表示该文件正处于冲突状态
蓝色问号:新建的一个文件,本地.svn 和 远程仓库 对该文件都没有记录
备注
SVN的替代产品还有SCM、 CVS、VSS、ClearCase、Git等,读者有需要可以此为开端自行学习。
SCM:软件配置管理,所谓软件配置管理实际就是对软件源代码进行控制和管理
CVS:元老级产品
VSS:入门级产品
ClearCase:IBM公司提供的技术支持
Git:高端
作者微信sxqwadezncd。