注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

good luck guys

welcome

 
 
 

日志

 
 

Subversion使用说明_stone_新浪博客  

2011-09-01 16:30:55|  分类: svn-cvs |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

Subversion使用说明
环境:Windows 2003 172.25.0.248
      Windows XP 172.25.23.46
      Subversion 1.4.5
      TortoiseSVN 1.4.5
      Apache 2.0.61
1、安装
   Subversion,TortoiseSVN,Apache安装都非常简单,Apache的安装目录在C:\Program Files\Apache Group\Apache2,TortoiseSVN安装在Windows XP上,作为客户端访问服务器,需要重新启动,客户端服务器都安装subversion和TortoiseSVN,这样可以互相测试
2 、subversion没有项目概念,它是创建一个档案库,在下面创建目录,目录相当于CVS对应的项目
    创建档案库
    svnadmin create c:/svn
3.svnserve方式运行
  subversion服务器有两种方式运行,自带的svnserve方式,另外一种作为apache的扩展模块,使用apache来作为服务器,先介绍简单的svnserve方式
  1)启动
     svnserve -d -r c:/svn
     远程客户机访问
     svn list svn://172.25.0.248
     这样可以看到档案库下面的目录,当然现在是空的
     -r 是root的意思,是用来指定根目录,如果不指定,是当前目录,如果使用
     svnserve -d 启动,svn list svn://172.25.0.248 会出现错误,
     svn list svn://172.25.0.248/svn 这样才能正确访问
  2)权限
     权限定义放在档案库根目录下的conf下,共三个文件
     svnserve.conf
     passwd
     authz
     先观察一下svnserve.conf,这里有四行是需要管理的
     # anon-access = read
     # auth-access = write
     # password-db = passwd
     # authz-db = authz
     # realm = My First Repository
     定义如下
     anon-access=read定义匿名用户的权限,默认是read,可以改成write,none,即写,或者没有任何权限,一般设置为none,避免匿名访问
     auth-access = write,这个也可以设置为read,none,不过不大可能这么设置
     password-db=passwd 指定了用户名密码文件,可以在passwd文件中设置用户名密码
     realm = My First Repository 这一行不要做修改
     修改svnserve.conf文件,如下
     anon-access = none
     auth-access = write
     password-db = passwd
     authz-db = authz
     realm = dev-test
     要去掉行首的空格,切记
     此时在客户段匿名访问,就会提示密码
     svn list svn://172.25.0.248 #服务器端svnserve -d -r c:/svn
     我们在passwd文件中增加用户名密码,密码格式是 用户名=密码
     修改如下
     [users]
     test=test
     hello=world
     现在就可以输入test/test,hello/world来登陆系统
   3)常用操作
     用命令操作太麻烦了,用TortoiseSVN来操作,第一次操作会提示用户名密码,用上面设置的输入既可
     subversion没有项目概念,只是管理目录
     导入项目
     选定文件夹,右键,TortoiseSVN,Import,将选择的文件导入,一个文件夹就导入了subversion
     导出:右键,SVN Checkout
     增加:右键,TortoiseSVN,add
     提交:右键,SVN commit
     更新:右键,SVN Update
   4)权限进阶
     假设情况如下开发人员stone,john,rose,测试人员jone,smith,brown,分为两个组dev,test,目录有两个dev,test,可以互相读取对方的目录,但是只能写自己的目录,all组包括test,hello,可以读取和写入所有目录
     修改svnserve.conf,取消认证用户的统一权限,在authz中定义
     #anon-access = none
     #auth-access = write
     password-db = passwd
     realm = dev-test
     修改passwd文件
     [users]
     test=test
     hello=world 
     stone=stone
     john=john
     rose=rose
     jone=jone
     smith=smith
     brown=brown
     修改authz文件
 [groups]
 dev=john,stone,rose
 test=jone,smith,brown
 all=test,hello

 [/]
 @dev=r
 @test=r
 @all=rw

 [/test]
 @test=rw

 [/dev]
 @dev=rw
    这样就可以限制访问权限,all组的用户拥有任何权限,dev组的只能读取所有的目录,但只能写dev目录,test也只能读取test目录,测试命令如下
    svn import a svn://172.25.0.248/a --username test --password test
    svn import b svn://172.25.0.248/c --username john --password john
    svn import c svn://172.25.0.248/c --username jone --password jone
    可以看出只有test用户可以在根目录增加数据,通过
    svn list svn://172.25.0.248 --username test --password test
    svn list svn://172.25.0.248 --username john --password john
    svn list svn://172.25.0.248 --username jone --password jone
    可以看出列表权限所有用户都有
    类似的可以测试dev,test目录的相应权限
    这样的权限设置,大多都够用了,如果需要多个档案库,可以将密码文件password-db,authz-db,指向一个文件,同时修改realm为同一个值,这个时候应该把多个档案库放在一个父目录下,如
   svnadmin create d:\svn\dev
   svnadmin create d:\svn\test
   svnadmin create d:\svn\doc
   启动
   svnserve -d -r d:\svn
   访问
   svn://172.25.0.248/dev,svn://172.25.0.248/test,svn://172.25.0.248/doc
   目录权限要加上档案目录
   [dev:/]
   [test:/]
  5)可以把svnserve包装为服务,如下
   sc create svnserve binpath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root c:\svn" displayname= "Subversion" depend= tcpip start= auto
   net start Subversion
   就可以正常访问了,系统重新启动,subversion也会重新启动
4、Apache 方式运行
   Apache安装比较简单,安装路径为C:\Program Files\Apache Group\Apache2,修改默认端口为803
   1)拷贝C:\Program Files\Subversion\bin下的mod_authz_svn.so,mod_dav_svn.so到C:\Program Files\Apache Group\Apache2\modules
   2)修改C:\Program Files\Apache Group\Apache2\conf\http.conf,增加
      LoadModule dav_svn_module modules/mod_dav_svn.so
      LoadModule authz_svn_module modules/mod_authz_svn.so
   3)创建档案库
     svnadmin create e:/svn/test
   4)配置权限
     修改httpd.conf,增加
     <Location /test>
 DAV svn
 SVNPath e:/svn/test
     </Location>
     重新启动Apache,就可以访问了,svn list http://172.25.0.248:803/test
     如果要配置多个版本库,可以使用父路径,如下
     <Location /svn>
 DAV svn
 SVNParentPath e:/svn
     </Location>
     访问路径为http://172.25.0.248:803/svn/test
     增加一个档案库,svnadmin create e:/svn/admin,访问路径为http://172.25.0.248/svn/dev
     这样配置无法匿名访问,好在我们可以配置权限
     现在增加用户验证
     创建密码文件
     set path=%path%;C:\Program Files\Apache Group\Apache2\bin
     E:\svn>htpasswd -c e:\svn\svn_apache_passwd.txt john
     Automatically using MD5 format.
     New password: ****
     Re-type new password: ****
     Adding password for user john

     E:\svn>htpasswd e:\svn\svn_apache_passwd.txt jone
     Automatically using MD5 format.
     New password: ****
     Re-type new password: ****
     Adding password for user jone

     创建了两个用户john/john,jone/jone,继续创建stone/stone,hello/world
     修改httpd.conf
     <Location /svn>
 DAV svn
 SVNParentPath e:/svn
 AuthType Basic
 AuthName "开发测试Subversion"
 AuthUserFile e:/svn/svb_apache_passwd.txt

 Require valid-user
     </Location>

     这样可以通过ToroiseSVN或者svn命令来操作,和svnserve协议是一样的
     svn import x http://172.25.0.248/test/x -m x
   5)权限进阶
     修改http.conf,
     <Location /svn>
 DAV svn
 SVNParentPath e:/svn

 AuthzSVNAccessFile e:/svn/svn_apache_access.txt #增加目录权限管理

 AuthType Basic
 AuthName "开发测试Subversion"
 AuthUserFile e:/svn/svn_apache_passwd.txt

 Satisfy Any #允许匿名访问
 Require valid-user
    </Location>
    创建svn_apache_access.txt
 [dev:/]
 john = rw
 stone = rw
 jone = r
 hello = r
 [test:/]
 john = r
 stone = r
 jone = rw
 hello = rw
    这样控制了john,stone可以读写dev档案库,读test档案库,jone,hello可以读写test档案库,读dev档案库
    重新启动apache
    #成功
    svn import test\t http://172.25.0.248:803/svn/dev/t --username stone --password stone -m x
    #收到错误
    svn import test\t http://172.25.0.248:803/svn/test/t --username stone --password stone -m x
    #成功
    svn import test\a http://172.25.0.248:803/svn/test/a --username hello --password world -m x
    #收到错误
    svn import test\a http://172.25.0.248:803/svn/dev/a --username hello --password world -m x
  Apache模式是比较好用的,可以通过浏览器来浏览subversion版本库,可以看到目录结构,或者还能简单的文件内容
5、现在来说,一个简单的subversion就可以配置和使用了,因为我是在windows上配置的,所以SSL的功能比较麻烦,等以后有空再研究吧,现在安全问题没有解决,无法部署到应用环境,这是下一步的事情,慢慢来




引文来源  Subversion使用说明_stone_新浪博客
  评论这张
 
阅读(767)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017