方案一:Visual SVN + Tortoise SVN
下载:
Visual SVN server 2.0.4:http://www.visualsvn.com/files/VisualSVN-Server-2.0.4.msi
Visual SVN也有客户端,主要是做Visual Studio的插件
Tortoise SVN 1.6.3:http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.6.3.16613-win32-svn-1.6.3.msi?download
Tortoise SVN 1.6.3语言包:http://downloads.sourceforge.net/tortoisesvn/LanguagePack_1.6.3.16613-win32-zh_CN.msi?download
配置:
1、修改IIS的端口
2、在Repositories中new一个,比如test,勾选Create default structure
3、新建一个user:liefdiy,创建密码:liefdiy
4、设置Visual SVN的端口为80,Server Name可以设置为本机IP,如172.18.4.25,这样在浏览器中就可以直接http://172.18.4.25/svn/test
5、右键Tortoise SVN中版本浏览器输入http://172.18.4.25/svn/test,输入用户名和密码登陆。
6、新建一个空文件夹,右键,SVN检出即可。
方案二:Apache + SVN + Tortoise SVN
下载:
CollabNet Subversion Server and Client v1.6.3 (for Windows) :http://www.collab.net/servlets/OCNDirector?id=CSVN1.6.3WINS
apache 2.2.11:http://labs.xiaonei.com/apache-mirror/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi
配置:
1、安装apache。安装目录不能出现中文,安装好后http://localhost显示it works则安装成功
2、安装SVN:
1) 进入Subversion的安装目录,将/Subversion/bin/目录下的mod_authz_svn.so和mod_dav_svn.so拷贝到Apache安装目录/Apache2.2/modules/下;
2) 进入Subversion的安装目录,拷贝文件libdb44.dll到Apache的modules目录;(注:这个不是必须的,文件名跟版本有差异如libdb43.dll)
3) 使用文本编辑器编辑Apache的配置文件(/Apache2.2/conf/httpd.conf),修改以下内容:
l 去掉以下两行的#号:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
l 在LoadModule节的最后添加以下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
3、安装Tortoise SVN
4、在apache的/Apache2.2/conf目录下,修改httpd.conf文件:
<Location /svn/> DAV svn SVNListParentPath on SVNParentPath "D:/source/SVN" # SVNIndexXSLT "/svnindex.xsl" //使用列表模板 AuthName " Subversion repositories 版本控制中心" AuthType Basic # AuthBasicProvider file //似乎subversion 1.4.5不支持此项 AuthUserFile "D:/source/SVN/test1/htpasswd" AuthzSVNAccessFile "D:/source/SVN/test1/authz" require valid-user #<LimitExcept GET PROPFIND OPTIONS REPORT> //下面表示允许匿名读取 #Require valid-user #</LimitExcept> </Location> RedirectMatch ^(/svn)$ $1/ |
说明: SVNParentPath是要建设版本库的根目录,在这个根目录下可以建立多个项目,例如D:/source/SVN/test1、D:/source/SVN/test2等,我们将要创建的密码和授权文件都要放在每个项目的目录下,如D:/source/SVN/test1/passwd,D:/source/SVN/test1/access |
5、创建密码和授权文件:
a) 创建版本库:svnadmin create D:/source/SVN/test1
b) 创建密码:cmd进入apache的bin目录,htpasswd -c D:/source/SVN/test1/passwd liefdiy,意为在那个目录下新建了一个passwd的密码文件,授给用户liefdiy
c) 创建授权文件:
[groups] admin = liefdiy guests = guest
# 为所有库指定默认访问规则 # 所有人可以读,管理员可以写,危险分子没有任何权限,[/]代表根目录 [/] * = r @admin = rw @guests = r dangerman =
# 允许开发人员可以完全访问他们的项目版本库 #[test1:/] #@admin = rw #@guests = r #[test2:/] #@admin= rw |
说明: [group]下是创建一个组,组名可以任意,关键是给它权限,w、r、x。 [test1:/]是指项目test1下的授权 |
最后,启动apache,在Tortoirse SVN的版本浏览器中输入http://172.18.4.25:81/svn/test1即可。另有参考文档如下。
<Location /svn> | Subversion版本库的URL是http://MyServer/svn/ |
DAV svn | 告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块 |
SVNListParentPath on | 对于Subversion1.3或者更高版本,这个指示表示显示所有SVNParentPath下的版本库 |
SVNParentPath D:/SVN | 告诉Subversion需要查看的版本库位于D:/SVN之下 |
AuthType Basic | 激活基本认证,就是用户名/密码 |
AuthName "Subversion repositories" | 用来说明何时弹出要求用户输入认证信息的认证对话框 |
AuthUserFile passwd | 指定使用的认证密码文件 |
AuthzSVNAccessFile | 位置Subversion版本库的访问控制文件的路径 |
Require valid-user | 指定只有输入了正确的用户/密码的用户可以访问URL |