Windows操作系统中SVN使用手册详解

开发 项目管理
本文和大家一起学习一下Windows下SVN使用手册,主要包括SVN下载,安装,建立版本库和配置权限等内容,希望通过本文的学习大家能够掌握SVN使用。

本节主要介绍一下Windows下SVN使用手册,在这里拿出来和大家分享一下,希望对大家有用,让我们一起来学习Windows下SVN使用手册吧。
一、下载
首先,请登录SVN官网http://subversion.tigris.org/下载服务端和客户端安装包。
可以根据你的需求,下载相应的发行版。如VisualSVN,其服务端是免费的,它提供了一个界面管理器,实现可视化配置管理,然而客户端却是收费的。
VisualSVNServer下载:http://www.visualsvn.com/server/download/对于大多数只进行源码版本控制的用户来说,TortoiseSVN无疑是首选。TortoiseSVN下载:http://tortoisesvn.tigris.org/
如果不嫌麻烦的话,建议使用Apatch2.x手动配置版本,你可以到该网址下载http://subversion.tigris.org/getting.html#windows
二、安装运行
将下载的svn-win32-1.5.4.zip解压到如“D:SVN”,生成bin,iconv,licenses,share等子目录,在bin下提供了很多命令行工具,如svnserve.exe、svnadmin.exe、svn.exe,使用--help可以获取帮助。
启动服务器:svnserve--daemon--root"E:svnRoot"--root"E:svnRoot"指定仓库根目录,服务器默认使用3690端口。
注册为服务:sccreateSVNServicebinpath=""D:svnbinsvnserve.exe"--service--rootD:svnRoot"displayname="SVNService"depend=Tcpip
注意这里"D:svnbinsvnserve.exe",当path中含有空格时,需要"path"包含起来。另外命令中每个等号前面不能有空格,而等号后面必须有空格,不然命令是不会被执行的,也不会报错。
客户端的安装比较简单,运行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi,安装后重启计算机即可。
三、建立版本库
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,SVN使用手册有两种方法可以建立版本库:
1、命令行方法:在命令行模式下,运行svnadmincreated:svnRootvwas,即可在d盘下创建一个版本库vwas。通常我们选用该方法。注意:版本库必须创建到根目录d:svnRoot,否则无法查找。(因为subversion对版本库采用子目录管理方法)
2、界面操作方法:在d:svnRoot目录下,右键,选择TortoiseSVN下的“在此创建文件库”,文件库类型选择默认的“本地文件系统(FSFS)”,这样就会在该目录下创建一个版本库。(需要在服务器上安装TortoiseSVN)repository创建完毕后会在目录下生成若干个文件和文件夹,dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;
四、配置权限
SVN使用手册介绍配置权限问题。注意:subversion修改配置后无须重启服务。
进入版本库如d:svnRootvwasconf,有三个配置文件svnserve.conf、passwd、authz,修改时必须去掉#和前面的空格,否则会报错,=号两边允许空格。
svnserve.conf文件内容如下:(svnserve默认使用这些配置)
[general]
#anon-access=read(这两句是总纲,控制匿名用户的权限,既使authz中使用*=rw也无法打破,实际应用中这里可能设置为none,禁止匿名用户进行任何访问)
#auth-access=write
#password-db=passwd
#authz-db=authz
#realm=MyFirstRepository
各参数定义如下:
anon-access:定义非授权用户的访问权限,有三种方式:none、read、write,设置为none限制访问,read为只读,write为具有读写权限,默认为read。
auth-access:定义授权用户的访问权限,有三种方式:none、read、write,设置为none限制访问,read为只读,write为具有读写权限,默认为write。
password-db:定义保存用户名和密码的文件名称,这里为passwd,和该文件位于同一目录。
authz-db:定义保存授权信息的文件名称,这里为authz,和该文件位于同一目录。
realm:定义客户端连接是的“认证命名空间”,Subversion会在认证提示里显示,并且作为凭证缓存的关键字。
subversion按版本目录来进行管理,只有在根目录下存在版本库目录,版本库才有效,如必须存在d:svnRootvwas,svnlistsvn://localhost/vwas才能执行成功。版本库conf下必须存在svnserve.conf,为了方便的进行多库管理,可以让所有版本库共用统一的用户和权限文件。
password-db=../../passwd将passwd放到svnRoot根目录,统一管理所有用户
authz-db=../../authz
passwd文件内容如下:
 

  1. [users]  
  2. #harry=harryssecret 
  3. #sally=sallyssecret 
  4. 这里定义了两个用户harry和sally,用户密码分别是harryssecret和sallyssecret。同样,我们还可以定义自己的用户名和密码。如下面添加guest用户,密码空guest=  
  5. authz文件内容如下:  
  6. [groups]  
  7. #harryharry_and_sally=harry,sally  
  8. #[/foo/bar]  
  9. #harry=rw 
  10. #*=  
  11. #[repository:/baz/fuz]  
  12. #@harry_and_sally=rw 
  13. #*=r  

这里定义了组harry_and_sally,组在引用时需要@组名,*表示所有用户,包括匿名用户。使用组的好处是,往往在实际应用中,同一个仓库或目录并不只是一个用户访问,通常我们将用户编成dev开发组、test测试组、man管理组,doc文档组,分别进行权限分配,如

  1. [vwas:/]  
  2. *=  
  3. [vwas:/doc]  
  4. @man=rw 
  5. @doc=rw 
  6. @dev=r 
  7. @test=r 
  8. [vwas:/srv]  
  9. @dev=rw 
  10. @test=r 
  11. [vwas:/test]  
  12. @test=rw 

subversion按照[仓库名:目录]的格式进行权限分析,忽略仓库名时,如[/]表示对所有的版本库生效。由于设计subversion的大佬们习惯linux,到了windows下,他们仍然使用"/"来标识子目录。
尤其需要注意的是:
子目录继承父目录的访问权限,如果指定了管理员对根目录具有读写权限,则管理员对子目录也具有读写权限。
权限规则没有优先级,采用“|”“&“的方式进行。
但是,如果在子目录中设置*=来割断对父目录权限的继承,则子目录中必须设置管理员权限为rw,下面这种设置是有问题的:
[arm:/]
qianxin=rw
[arm:/diary/shanghai]
dai=rw
gongyu=rw
*=(这句表示割断除dai和gongyu以外所有用户的权限)请期待下节SVN使用手册介绍。

【编辑推荐】

  1. SVN使用手册之入门篇
  2. SVN管理与应用相关的资料参考手册
  3. ApacheSVN服务器安装指导手册
  4. Centos下SVN的安装配置实用手册
  5. SVN服务器安装指导手册
责任编辑:佚名
相关推荐

2010-05-26 13:17:55

SVN简易使用手册

2010-05-26 12:45:49

SVN使用手册

2010-05-27 13:08:46

SVN简易使用手册

2010-05-21 12:37:49

SVN使用教程

2010-05-26 14:01:47

SVN安装使用手册

2010-05-27 13:35:43

SVN简易使用手册

2010-05-26 13:51:40

SVN安装使用手册

2010-05-26 12:59:48

SVN简易使用手册

2010-05-20 19:12:37

2010-05-26 13:32:16

SVN简易使用手册

2010-06-01 13:28:54

SVN客户端用户使用手

2010-06-01 13:19:04

2010-06-13 17:07:10

Cacti使用手册

2010-05-17 14:53:16

Subversion使

2009-10-26 11:11:33

linux Emacs

2010-08-31 08:59:06

marginHTML

2011-08-09 13:22:31

iPhoneSqlite数据库

2009-12-02 18:03:00

PHP cURL

2010-05-19 10:57:34

Subversion配

2011-03-08 13:30:46

Xperf监控Windows性能
点赞
收藏

51CTO技术栈公众号