原创 版本控制SVN在windward下安装与配置

2009-12-1 17:11 3740 7 7 分类: FPGA/CPLD

SVN:Subversion


目前最新版本是1.6.6,包含了Apache服务2.213,安装的时候默认一同安装,客户端使用TortoiseSVN-1.6.6。


 


软件在网上都可以免费下载,作为新手这里介绍一下我的SVN配置过程。


 


1、基本配置


 


1)、安装完成在浏览器输入http://localhost打开的网页显示“It works”表示Apache与SVN整合完成;


2)、发现安装完成之后无需重启电脑即可启动Apache服务;


3)、修改配置文件,即安装路径conf目录下的httpd.conf文件,发现mod_dav.so已经默认注册,只需打开mod_dav_fs.so前面的注释标记即可(大概在文件的85行左右);


4)、在指定版本库根目录下创建一个库,比如repo1;


5)、打开浏览器,输入地址:http://localhost/svn/repo1,这时应该能看到“repo1 - Revision 0:/”


 


2、配置权限


 


权限配置这里分为两种,一种是用户认证,一种是访问权限。在安装路径下的conf目录下的httpd.conf文件中注册Subversion浏览库和权限控制modules:


LoadModule dav_svn_modules/mod_dav_svn.so


LoadModule authz_svn_modules/mod_authz_svn.so


注意:mod_dav_fs.so和mod_dav.so必须被打开(前面基本配置的时候已经打开),且必须在mod_dav_svn.so和mod_authz_svn.so之前(可以将这两项放在所有dav之后)。


 


在进行权限配置之前,配置文件的最后一段如下所示:


<Location /svn> 
   DAV svn 
   SVNParentPath d:\svn_repository


</Location>


 


1)、身份认证配置


 


在配置文件最后的location段加入:


AuthUserFile    (path)/passwd


passwd文件中包含对访问版本库的用户的管理,即所有用户及其密码。该文件就是一个文本格式的文件,可以任意编辑。如果密码未加密则内容如下所示


coyoo:123


tom:456


表示该文件中管理了两个用户coyoo和tom,他们的访问密码分别是123和456。如果要为用户创建不透明的密码,可以使用Apache的htpass命令,操作如下


 


打开命令行(DOS窗口CMD),
将当前目录切换到apache2目录(通常为安装路径\httpd\bin),
输入命令:
htpasswd.exe -c passwd  coyoo


回车后在命令行提示以下内容,需要你两次输入为该用户创建的密码 



Automatically using MD5 format.
New password: ******  (输入密码)
Re-type new password: ******
Adding password for user  coyoo


 


这样就创建了一个passwd文件,并且有一个用户,即coyoo,他的密码已被加密。这里要注意的是在开始创建passwd文件的时候如果事先文件不存在需要使用“-c”参数,即表示初次创建密码文件;之后如果要添加其他用户则执行相同命令但不能再带此参数,否则即新建密码文件,密码加密以后如下所示:


coyoo:$apr1$enD0V98v$5hW6vOa9RnTfYIFnFXxIK.


将密码文件放在版本库根目录下即可。


 


2)、访问权限配置


 


同样在配置文件最后的location段加入:


 


AuthzSVNAccessFile    (path)/authz


 


文件authz跟passwd一样属于文本文件,可以任意编辑,该文件一般包括两部分内容:


一部分是以[groups]定义开始的用户组,比如


[groups]


dev1 = coyoo


dev2 = tom,jacky


 


上面定义了两组用户即dev1和dev2。


另外一部分内容是对各个路径分配给用户以不同的访问权限,比如:


[\]


* = r


[\svn\svn_repository\prj1]


@dev1 = rw


@dev2 = r


[\svn\svn_repository\prj2]


@dev1 = rw


tom = rw


jacky = r


以上对3个路径进行了访问权限配置,跟路径所有用户有读的权限,prj1对于dev1用户组有读写权限,而对用户组dev2只有读权限,prj2对于用户组dev1有读写权限,而对于用户tom有读写权限,jacky只有读的权限。注意关键字“@”代表组。


 


经过权限配置后,配置文件最后一段location就如下所示:


 


#配置虚拟目录,表示访问配置库的url为:http://xxx.xxx.xxx/SVN
<Location /svn>
   #引用远程访问模块,告诉Apache哪个模块负责服务像那样的URL
   DAV svn
   #配置版本库路径
   SVNParentPath d:\svn_repository 
   
      #验证方式,启用基本的验证,用户名/密码验证
   AuthType Basic
   #项目的名称,当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
   AuthName "Subversion Repository"
   #用户身份认证文件
   AuthUserFile "d:\svn_repository\passwd"
   #授权文件,指定authz来限定各个用户或组在版本库中目录的访问权限
   AuthzSVNAccessFile "d:\svn_repository\authz.txt"
   #只允许https方式访问
   #SSLRequireSSL


   #所有用户都需要身份验证,禁止匿名访问
   Require valid-user
   #允许匿名访问
   #Satisfy Any
   #为了让页面好看,Subersion自带或者用户自制的XSLT样式表
   SVNIndexXSLT "\svnindex.xsl"
   #允许访问/svn目录
   #SVNListParentPath on
  
  
</Location>

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条