首先我们思考下面几个工作中会遇到的问题
1:怎么备份工作文档
2:怎么进行工作文档的版本管理
3:协同合作模式怎么进行数据的同步
一个互联网公司会有非常多的工作角色,如项目经理、产品经理、开发工程师、设计师、测试工程师等等,每天的工作会产生非常多的代码、文档,所以我们需要一个管理工具来对文档进行科学备份和版本控制,今天我们要分享的——subversion,简称SVN,就是一个强大的版本控制管理工具。
Subversion,简称SVN,是一个开源的版本控制系统。在Subversion管理下,文件存放在中心版本库里,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以通过SVN将数据恢复到以前的版本,并可以查看数据的更改细节。
使用svn,我们一天的工作流程将变成如下几步:
1:每个人从SVN服务器下载项目的最新文档(代码)
2:进入各自的分支,开始工作
3:阶段性工作成果提交
4:下班时间到了,合并各自的分支到服务器主分支
请点击此处输入图片描述
下面就带大家在Linux下安装一个属于自己的版本控制管理系统
1:yum在线安装subversion,连上Linux系统,输入yum -y install subversion,当看到如下提示时,表示安装SVN成功了
请点击此处输入图片描述
2:建立仓库目录,使用svnadmin建立一个版本库,输入如下命令
mkdir -p /var/svn/lemon
svnadmin create /var/svn/lemon
请点击此处输入图片描述
3:版本库目录和文件说明
切换到/var/svn/lemon的目录下,我们可以看到生成了如下的文件
请点击此处输入图片描述
conf:仓库配置文件(用户访问账号、权限等)
db:所有版本控制的数据文件的目录
format:文本文件,里面只放了一个整数,表示当前文件库配置的版本号
hooks:hook脚本文件
locks:文件库锁定数据的目录
切换到conf目录下,可以看到三个配置文件
请点击此处输入图片描述
4:编辑账号密码文件passwd,添加访问用户和对应的密码
输入:vim /var/svn/www/conf/passwd,编辑文件,在[users] 下添加用户名密码对,然后保存退出
请点击此处输入图片描述
5:编辑权限控制文件authz,划分组、添加用户到组并授权
输入:vim /var/svn/lemon/conf/authz, 编辑文件如下,然后保存退出
请点击此处输入图片描述
[groups]下配置的是组 = 组用户1、组用户2的一个列表,表示每个组有哪些用户;
[/]:这里的根目录是指项目根目录,而不是系统根目录,具体本例是指/var/svn/lemon
@g_admin = rw:表示g_admin这个组的权限,其中r表示读,w表示写,即该组拥有项目根目录的读写权限
[/dev]
@g_dev = rw
表示g_dev组拥有对根目录下dev目录下文件的读写权限
6:编辑服务配置文件,让用户和策略生效
输入:vim /var/svn/lemon/conf/svnserve.conf,修改svn仓库配置文件如下
请点击此处输入图片描述
上面的各个配置项说明如下:
[general]
anon-access = none #不允许匿名用户访问
auth-access = write #通过验证的用户可以读和写,passwd.conf 中用户
password-db = /var/svn/lemon/conf/passwd #用户保存文件
authz-db = /var/svn/lemon/conf/authz #权限管理文件
realm = lemon#认证空间名,版本库所在目录
7:启动svn:svnserve -d -r /var/svn/
测试是否成功:输入svnserve --version
看到如下信息就表示我们的SVN已经正常启动了
请点击此处输入图片描述
8:初始化版本库文件
我们在/home目录下新建一个测试文件,并使用svn inport命令导入初始文件到版本库
请点击此处输入图片描述
9:接下来使用我们的svn客户端TortoiSVN,在win7下下载我们刚创建的版本库
点击鼠标左键,选择SVN checkout
请点击此处输入图片描述
输入我们的SVN版本库地址:
请点击此处输入图片描述
点击OK,输入我们的用户名和密码
请点击此处输入图片描述
点击OK,我们就可以看到checkout的提示,还有dev下之前建立的文件
请点击此处输入图片描述
以上是Linux下搭建SVN的流程。