CentOS下搭建SVN服务

发布时间:2016-03-24 浏览次数:2426 文章来源:个人博客

因为工作需要,自己在网上找了一下资料,了解了如何配置svn服务,并且已经成功配置,现在纪录下来。

SVN代码管理是我们日常工作需要用到的,所以在服务器上学会配置SVN服务很重要。


(1)安装SVN

yum install subversion


用yum命令安装svn。很简单。


(2)创建SVN仓库。

mkdir -p /data/svn/project_1
svnadmin create /data/svn/project_1

这样,就创建了一个svn仓库了。

同时,会在project_1目录下生成conf,db,format等文件和文件夹


(3)进入conf目录配置文件


authz文件是权限控制文件

passwd是帐号密码文件

svnserve.conf SVN服务配置文件


vi authz #编辑authz文件
  
[groups]
managers=manager1,manager2     #定义群组 managers 包含 manager1 和 manager2 两个用户
[/]
@managers=rw            #定义群组 managers 有读写权限
manager3=r             #定义 manager3 有读权限
*=                 #以上没有定义的用户都没有任何权限


vi passwd #编辑passwd文件
[users]
manager1=123456    #每一行都要是“用户名=密码”的格式
manager2=123123 
manager3=888888


vi svnserve.conf #编辑svnserve.conf文件
[general]
anon-access=read      #匿名可读 建议设置为none,不然别人可以获取你的代码
auth-access=write     #验证用户可读写
password-db=passwd     #指向验证用户名密码的数据文件 passwd ,请看下文配置
auth-db=authz       #指向验证用户的权限配置文件 authz ,请看下文配置
realm = /data/svn/project_1 # 认证空间名,版本库所在目录
注意:每一行前方不能有空格,否则会出现 Option expected 错误!


(4)启动SVN服务

svnserve -d -r /data/svn/project_1

这样,svn服务就启动了。如果有多个项目,比如还有一个project_2的项目,那么启动最好是这样

svnserve -d -r /data/svn

少了(project_1);这样的话两个项目都一起启动。


(5)客户端checkout服务器上的svn代码

svn checkout svn://服务器的ip地址/

如果是多个项目,那么checkout不同项目代码:

svn checkout svn://服务器的ip地址/project_1
svn checkout svn://服务器的ip地址/project_2


(6)服务器上取服务器上的SVN代码。

在WEB开发的时候,我们需要用SVN提交代码到服务器上,同时,希望客户也可以访问到代码,可是,SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题 (例如,并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此变得不透明。


说白了,就是在svn服务器上是看不到你上传的文件目录内容的。


所以如果想要在服务器上找到你上传的代码,需要在服务器上也checkout一份代码,这样你才能获取你上传的代码。


//在服务器上checkout代码。
svn checkout svn://服务器的ip地址/

然后写一个update的脚本,当代码提交到服务器后,执行./update就将上传的代码同步到服务器上。


vi update
#!/bin/sh 
svn up /your server svn checkout code path/ --username "manager1" --password "123456"


最后给脚本增加可执行权限

chmod +x update


key-word
SVN服务器搭建 SVN搭建 安装SVN服务 SVN代码管理 linux安装SVN