Subversion(简称SVN,svn),一个开放源码的版本号控制系统。相较于RCS、CVS,它採用了分支管理系统,它的设计目标就是代替CVS。互联网上非常多版本号控***务已从CVS转移到Subversion。
svnserver有2种执行方式:独立server和借助apache执行。
以下我安装独立SVN
首先。清除一下yum的缓存吧,yum clean all
【一】安装 subversion
yum install subversion subversion-devel
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbDEwMjgzODY4MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
然后选择y(yes)确认安装。当然你能够在yum install 的时候加个 -y 參数
运行 svnserve --version 命令。假设输入已下信息则说明成功安装
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbDEwMjgzODY4MDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
2. svn配置建立svn版本号库文件夹可建多个:
mkdir -p /opt/svndata/repos1
mkdir -p /opt/svndata/repos2
建立svn版本号库svnadmin create /opt/svndata/repos1
svnadmin create /opt/svndata/repos2
改动svn版本号库配置文件版本号库1:
vi /opt/svndata/repos1/conf/svnserve.conf
内容改动为:
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/conf/pwd.conf
authz-db = /opt/svn/conf/authz.conf
realm = repos1
版本号库2:
vi /opt/svndata/repos2/conf/svnserve.conf
内容改动为:
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/conf/pwd.conf
authz-db = /opt/svn/conf/authz.conf
realm = repos2
即除realm = repos2外,其它与版本号库1配置文件全然同样。
假设有很多其它的版本号库。依此类推。
配置同意訪问的svn用户vi /opt/svn/conf/pwd.conf
为了简化配置。2个版本号库共用1个用户配置文件。
如有必要。也能够分开。
注意:对用户配置文件的改动马上生效,不必重新启动svn。
文件格式例如以下:
[users]
<用户1> = <password1>
<用户2> = <password2>
当中,[users]是必须的。以下列出要訪问svn的用户,每一个用户一行。
演示样例:
[users]
alan = password
king = hello
配置svn用户訪问权限vi /opt/svn/conf/authz.conf
为了简化配置。3个版本号库共用1个权限配置文件/opt/svn/conf/pwd.conf。如有必要,也能够分开。文件里定义用户组和版本号库文件夹权限。
注意:
* 权限配置文件里出现的username必须已在用户配置文件里定义。
* 对权限配置文件的改动马上生效,不必重新启动svn。
用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
当中,1个用户组能够包括1个或多个用户,用户间以逗号分隔。
版本号库文件夹格式:
[<版本号库>:/项目/文件夹]
@<用户组名> = <权限>
<username> = <权限>
当中,方框号内部分能够有多种写法:
/,表示根文件夹及下面。
根文件夹是svnserve启动时指定的。我们指定为/opt/svndata。这样,/就是表示对所有版本号库设置权限。
repos1:/,表示对版本号库1设置权限
repos2:/abc, ,表示对版本号库2中的abc项目设置权限
repos2:/abc/aaa, ,表示对版本号库2中的abc项目的aaa文件夹设置权限
权限主体能够是用户组、用户或*,用户组在前面加@,*表示所实用户。权限能够是w、r、wr和空。空表示没有不论什么权限。
演示样例:
[groups]
admin = alan
[/]
@admin = rw
[repos1:/abc/aaa]
king = rw
[repos2:/pass]
king =
svn配置完成,删除无用文件rm /opt/svndata/repos1/conf/authz
rm /opt/svndata/repos1/conf/passwd
rm /opt/svndata/repos2/conf/authz
rm /opt/svndata/repos2/conf/passwd
3. 启动svn建立启动svn的用户useradd svn
passwd svn
依据提示为用户svn设置password
同意用户svn訪问版本号库chown -R svn:svn /opt/svndata
chown -R svn:svn /opt/data
启动svnsu - svn -c "svnserve -d --listen-port 9999 -r /opt/svndata"
当中:
su - svn表示以用户svn的身份启动svn
-d表示以daemon方式(后台执行)执行
–listen-port 9999表示使用9999port,能够换成你须要的port。但注意,使用1024下面的port须要root权限
-r /opt/svndata指定根文件夹是/opt/svndata
检查:
ps -ef|grep svnserve
假设显演示样例如以下。即为启动成功:
svn 6941 1 0 15:07 ?
00:00:00 svnserve -d –listen-port 9999 -r /opt/svndata
加入开机自己主动启动
echo "svnserve -d --listen-port 9999 -r /opt/svndata" >> /etc/rc.local