本文参考了网上一些文章,总结了在windows平台下的安装与配置,希望对大家有帮助。
1.下载安装。
下载服务器端:Subversion,地址在http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=11151&expandFolder=11151&folderID=91
下载客户端TortoiseSvn:http://tortoisesvn.net/downloads.html
安装好Subversion,我是装在D:\Program Files (x86)\Subversion下。客户端随意安装。
版本库可以看作是服务器上集中存放和管理数据的地方。可以建立多个,每个版本库有自己独立的配置。
比如我新建文件夹F:\svn作为版本库。那么在Subversion的bin目录下运行命令:
svnadmin create F:\svn\
你会看到该目录下新建了一堆文件和文件夹。接下来就可以对该版本库进行权限配置了。
3.运行服务器。
在Subversion的bin目录下运行命令:
svnserve --daemon --root F:\svn
如果你是在cmd窗口运行的,注意不要关闭该窗口,否则svnserve也被关闭了。你可以在cmd窗口中ctrl+c终止其运行。
4.服务器自启动
windows下最好的方式是采用服务的方式。建立一个bat,复制如下代码:
sc create SVN binpath= "\"D:\Program Files (x86)\Subversion\bin\svnserve.exe\" --service -r f:\svn" displayname= "SVN" depend= Tcpip
pause
请格外注意,由于路径中包括空格,一定要用\处理"号。而displayname= "SVN"depend= Tcpip这里等号后面的空格也是必不可少的。
最后你可以在services.msc里面亲自查看svn服务是否设置为自启动。
要删除服务很简单,使用如下命令:
sc delete svn
在版本库的conf文件夹中有svnserve.conf、passwd、authz 这3个文件。里面有一些例子,都被#注释了,注意删掉#号和紧跟他的空格。
svnserve.conf文件配置如下:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
anon-access表示匿名用户只有只读权限;
auth-access表示授权用户拥有可写权限;
password-db指定帐号密码配置文件的文件名;
authz-db指定用户权限配置文件的文件名。
passwd文件配置举例如下:
[users]
admin = 123123
guest1 = 111111|
guest2 = 111111
最后是authz文件,配置很灵活,例如:
[groups]
g_admin = admin
g_guest = guest1, guest2
这一段用于配置用户组。在这里我创建一个g_admin表示管理员分组,组里有一个管理员帐号admin,g_guest表示普通用户分组,内有帐号guest1 ,guest2。
#根目录
[/]
@g_admin = rw
@g_admin = r
*=r
这一段表示根目录的权限。管理员组有所有权限,而用户组只有可读权限,不在这2个组的其他所有用户都只有只读权限。
可以按照这个规则配置每个文件夹的规则。比如要配置\Project\Doc目录,就新建一个[\Project\Doc]字段即可。
注意如果不做任何配置,则默认只读;如果父文件夹不设置而子文件夹设可写,则子文件夹可写而父文件夹只读。
6.访问
上文已经建立了一个名为svn的版本库。要测试是否可被访问,使用TortoiseSvn的版本库浏览器(Repository Browser),在地址栏输入
svn://localhost/svn
只要把localhost改成你的IP地址或者计算机名就可以让同一个局域网内的其他机器访问了。
参考文献:
http://www.blogjava.net/MEYE/archive/2010/03/10/315041.html(此文章很详细)
http://blog.youkuaiyun.com/yangtalent1206/article/details/6267842(此文章通过分析具体案例来配置权限,相当赞)
http://hi.baidu.com/_rains_/item/9e0fd316d47346e2dceecac3
http://blog.youkuaiyun.com/yangtalent1206/article/details/6327568
http://www.blogjava.net/jasmine214--love/archive/2010/10/14/335094.html(此文章简单介绍服务器Hook配置,高级用户可以看看)