一、搭建过程
1.卸载svn
利用以下命令查看自己的系统是否已经安装了svn:
svn |
上面显示为未安装,如果显示说明已安装,可以使用以下命令进行卸载:
sudo apt-get remove --purge subversion |
(–purge 选项表示彻底删除改软件和相关文件)
2.安装svn
sudo apt-get install subversion |
上图显示安装成功。
可以验证一下,通过如下命令:
svn help //--svn帮助 svn --version //--svn版本 svnserve --version //--svn server版本 |
3.创建SVN版本库
(1)创建项目目录和svn仓库:
sudo mkdir /home/svn sudo mkdir /home/svn/repository sudo chmod -R 777 /home/svn/repository sudo svnadmin create /home/svn/repository |
创建svn目录,再创建repository版本库,repository为版本库的名字,可以更改为自己的名字。
执行命令后,会在repository下生成以下文件:
对db进行权限设置:
sudo chmod -R 777 db //如果不执行上述命令,会报权限错误 |
错误如下:
这是因为我们用的都是sudo权限做的操作,默认只有root用户对文件夹才有写权限,因为root的umask是0022,别的用户没有写权限。
(2)设置访问权限:
首先 svnserve.conf里边配置了版本库的权限,需要把下边5行的注释打开,一定注意,去掉#号的同时把空格去掉,否则svn服务不能正常运行。
sudo vi /home/svn/repository/conf/svnserve.conf |
anon-access = none #控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:read auth-access = write #控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:write password-db = passwd #指定账户密码配置文件,当前文件夹下的passwd文件 authz-db = authz #权限配置文件,当前文件夹下的authz文件 realm = first #版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示) |
(3)配置passwd
如下代码,配置了用户名为test的用户,并为其创建了密码test123.如需要配置多用户就多写几个吧,记得换行
### This file is an example password file for svnserve. ### Its format is similar to that of svnserve.conf. As shown in the ### example below it contains one section labelled [users]. ### The name and password for each user follow, one account per line. [users] # harry = harryssecret # sally = sallyssecret test=test123 |
(4)配置authz权限
下边的代码为test用户创建了读和写的权限。
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe # [/foo/bar] # harry = rw # &joe = r # * = # [repository:/baz/fuz] # @harry_and_sally = rw # * = r [/] test=rw |
如果用户较多,需要分角色划分权限参考下边代码,这段代码,为test创建了admin的角色,为ttt用户创建了user的角色,最后使用@符号为角色创建权限,admin角色读写权限,user角色读权限。
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe # [/foo/bar] # harry = rw # &joe = r # * = admin=test user=ttt # [repository:/baz/fuz] # @harry_and_sally = rw # * = r [/] @admin=rw @user=r |
ok,配置已经完成,启动svn服务器,执行如下命令:
svnserve -d -r /usr/svn |
启动服务器,-d表示守护线程后台运行,-r表示指定目录。注意:不要写成svnserve -d -r /usr/svn/repository。否则虽然服务可正常启动,但是客户端用的时候可能会产生问题。
查看是否启动成功:
ps -ef | grep svnserve |
如果结果为两个线程在运行,一般是成功了。
四:访问SVN服务器
可以通过TortoiseSVN客户端访问SVN服务器:
在本地新建一个文件夹,进入文件夹,使用TortoeseSVN访问之前创建的SVN服务器仓库。
进入svn仓库后,可以试着提交一个文件夹:
点击确定或者OK后会提示你输入svn的用户名和密码:
到此就完成了。。。。