其实也不完全算是原创,我主要是借鉴其他网友的,然后加上自己实际情况,亲自实践后的总结。
1、下载 CollabNetSubversion-server
URL : http://www.open.collab.net/downloads/subversion/
官网现在推荐的是 CollabNet Subversion Edge ,下载CollabNetSubversion-server 就得在该网站上选择See previous CollabNet Subversion releases
貌似下载的时候还要求注册。如果你不想注册,那就到其他网站去下载。
2、安装 CollabNetSubversion-server
安装很简单,它自带 Apache,所以不用再单独安装Apache. 安装过程除了修改一下安装路径以及版本库的路径外,其他一直点“下一步”就OK . 注意:安装完成后,系统里的“服务”中会多出两个服务 ,一个是Apache , 一个是 Subversion Server ,这2个服务在安装完成后是没有启动的,所以需要重启一下电脑。重启完成后,用 services.msc命令查看一下(开始--运行--services.msc--确定)这2个服务是否启动。
如果重启后 apache服务仍然没有启动,或手动启动时会提示无法启动,这是很常见的问题。可能的原因是 apache的端口(默认是80)被占用, 解决方法是 修改它的默认端口 。具体的修改方法是:找到CollabNetSubversion-server安装路径下的 httpd.conf文件 (我的是在 D:/Program Files/CollabNet Subversion Server/httpd/conf 目录),用记事本(或其他编辑工具)打开,然后在键盘上同时按下 Ctrl + F ,在“查找内容”框中输入 Listen 80 ,选择向上或向下查找 ,点击“查找下一个” ,找到后把端口修改为 8080或其他非常用端口。Ctrl + S 保存,然后关闭httpd.conf文件。 现在你可以再去尝试手动启动apache服务。
注意这里把端口修改后,后面所述的链接访问地址也必须加上该端口,
如: http://192.168.0.123:8080/svn/svndemo
3、建立版本库(Repository)
开始--运行--cmd 进入dos ,输入如下命令:
svnadmin create D:/svn_repository/svndemo
就会在D盘建立一个版本库 (或者 用TortoiseSVN图形化的完成这一步,据说此方法存在版本兼容问题,不建议用)
4、配置用户和权限
配置subversion
1)修改 D:/svn_repository/svndemo/conf目录下的文件svnserve.conf
#没通过验证,只读的权限
#anon-access = read
#通过验证,最多可获得写权限
#auth-access = write
#验证文件的位置
#password-db = passwd
#权限配置文件的位置
#authz-db = authz
去除行开头的注释关键字#,并设置为:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
2)创建权限策略文件authz:(在svnserver.conf同目录下有authz文件,修改anthz)
#在管理员组(admin组)建里2个用户,分别是 admin, root .可以建立多个组
[groups]
admin = admin,root
#关键字“@”代表组 ,等号后面是该组的权限
[svndemo:/]
@admin = rw
#用户组admin对svndemo这个库下的所有文件(/表示根目录)有读写的权限
[/svndemo:/]
@admin = rw
5、两种连接方式的配置:
1)使用 svn://localhost/svndemo 方式连接版本库,则设置如下内容
修改D:/svn_repository/svndemo/conf目录的passwd文件,去掉下面行的注释:
#等号前的字符就是用户名,等号后面的就是密码
[users]
admin = admin
root = root
2)使用 http://localhost/svn/svndemo 方式连接版本库,则设置如下内容:
首先,将CollabNetSubversion自带的apache的bin目录(如 D:/Program Files/CollabNet Subversion Server/httpd/bin)加入环境变量Path中(CollabNetSubversion自带的svn的目录路径在安装时已经自动加入到 Path中)。
其次,进入DOC窗口 ,输入如下命令:
htpasswd -c D:/svn_repository/svndemo/.htpasswd admin
回车后要求输入密码以及确认密 码。这里的admin是先前第4歩配置权限时建立的一个用户,当然这里可以是其他的用户名。这个命令的作用是用apache htpasswd 建立用户密码文件,并添加用户密码到密码文件中 。这时在 D:/svn_repository/svndemo目录下会生成一个.htpasswd文件,存放用户aa和aa的密码,在Windows平台上,密码 将使用Apache修改过的MD5算法进行加密;在其它平台上将使用crypt()进行加密。如果指定的文件不存在,htpasswd将只返回一个错误代 码,而不做其它任何事。
然后,在 httpd.conf (第2歩中提到的过)中注册Subversion浏览库和权限控制moudle:
在httpd.conf 中 按第二步中的查找默认端口的做法 查找如下两句
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
找到后把它们前面的 # 去掉, 再查找
LoadModule dav_svn_module modules/mod_dav_svn.so
在这句后面,添加下面一句:
LoadModule authz_svn_module modules/mod_authz_svn.so
最后,在httpd.conf 最末尾几行找到(没有的内容就添加)如下内容:
#表示访问配置库的url为: http://xxx.xxx.xxx/SVN
<Location /svn>
#告诉Apache哪个模块负责服务像那样的URL
DAV svn
#配置库路径:
SVNParentPath D:/svn_repository
#启用基本的验证,用户名/密码验证
AuthType Basic
#当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthName "svn repos"
#身份验证文件的路径
AuthUserFile D:/svn_repository/svndemo/.htpasswd
#指定authz来限定各个用户或组在版本库中目录的访问权限
AuthzSVNAccessFile D:/svn_repository/svndemo/conf/authz
#只允许https方式访问
#SSLRequireSSL
#Subersion自带的XSLT样式表
#SVNIndexXSLT "/svnindex.xsl"
#允许匿名访问
#Satisfy Any
#禁止匿名访问
Require valid-user
#允许访问/svn目录
SVNListParentPath on
</Location>
添加完成后,保存并退出 httpd.conf 文件。
好了。。。。现在得手动重启一下apache服务了。。。不然添加的用户和密码没用。重启后 当你通过TortoiseSVN 访问时 就会弹出 要求输入用户名和 密码的对话框。
呃。。。。貌似写的应该差不多了,就这样吧。该睡觉了^ _ ^ ...