创建多个svn仓库并通过http访问

来源:互联网 发布:sql在线格式化工具 编辑:程序博客网 时间:2024/05/22 05:17

首先需要安装svn服务器以及apachet等,相关信息请参照:

http://wiki.ubuntu.org.cn/SubVersion

 

下面我们将主要介绍如何创建多个仓库,每个仓库单独存放一个项目的文件以及单独存放一个项目权限密码设置。

如:某个出差补助,十七块五的公司,准备对公司上一整套信息化管理系统。什么MES,ERP,HR,CRM......

1.每个项目的所有文件都放在单独的一个SVN仓库里面

2.并对每个仓库分配不同的权限,比如:每个项目都有doc,src,release等目录,分别存放设计文档,项目源代码等不同信息。

项目经理希望每个目录应该有不同的人来访问,比哪doc应该给设计人员分配读写权限,而开发人员只有读取权限等,这个就可以避免无关人员的误操作。

3.并对每个仓库分配不同的用户及认证:每个项目的开发人员肯定都是不一样的,所有每个项目都应该有不同的人员及认证密码,这个好理解 。

那根据公司的需要我们下面开始请如何来实现:

首先在某个目录下面创建这几个仓库,这里我们默认把仓库都建在/home/me/svn下面,通过以下命令完成仓库的创建:

 

Java代码  收藏代码
  1. sudo svnadmin create project_name  

 然后修改该路径下所有文件的权限:

 

Java代码  收藏代码
  1. sudo chown -R root:subversion project_name  
  2. sudo chmod -R g+rws project_name  

 

下面我们继续设计用户及认证信息,这里添加用户wyang以例:

 

Java代码  收藏代码
  1. sudo htpasswd /home/me/svn/project_name/conf/passwd wyang  

 这个时候需要初始化用户密码相应输入两次密码以后,用户wyang就添加进去了。同过相同方式添加其它用户的认证信息。

 

 

 完成以后,我们设置项目的权限配置:

 

Java代码  收藏代码
  1. sudo vi  /home/me/svn/project_name/conf/authz  

 通过vi打开这个文件后,把文件中的内容全部删除掉,然后添加以下内容[groups]

Java代码  收藏代码
  1. design = wyang  
  2. dev = szhang,sli  
  3. [/doc]  
  4. @design = rw  
  5. @dev = r  
  6. [/src]  
  7. @design = r  
  8. @dev = rw  
  9. * = r   

 其中创建了设计组和开发组,开发组有szhang,sli两人,设计组有wyang一个,设计人员可以读改/doc和/src中的内容。而开发人员可以修改/src中的内容,以及读取/doc中的设计文档。

最后,我们需要修改一下apache的设置信息:

 

Java代码  收藏代码
  1. sudo vi /etc/apache2/mods-available/dav_svn.conf  

 

 在文件的最后添加以下信息:

 

Java代码  收藏代码
  1. <Location /svn/project_name>  
  2.   DAV svn  
  3.   SVNPath /home/mes/svn/project_name  
  4.   AuthType Basic  
  5.   AuthName "project_name Repository"  
  6.   AuthUserFile /home/mes/svn/project_name/conf/passwd  
  7.   AuthzSVNAccessFile /home/mes/svn/project_name/conf/authz  
  8.   <LimitExcept GET PROPFIND OPTIONS REPORT>  
  9.     Require valid-user  
  10.   </LimitExcept>  
  11. </Location>  

 

 这样就完成一个仓库的配置了,最后重启一下apache,就可以通过http://ip/svn/project_name进行访问了。

 

Java代码  收藏代码
  1. sudo /etc/init.d/apache2 restart  

 然后重复以上的步骤就可以创建其它仓库并为仓库分配权限及认证信息了。 

0 0