SVN一条龙(版本库创建、启动后台服务、客户端)
操作系统
Windows XP SP2
SVN相关下载
(见后附相关资源)
服务器安装
运行“svn-1.4.5-setup.exe”,或直接解压“svn-win32-1.4.5.zip”
版本库创建
命令如下,其中C:/svnroot/MyRepo为要创建的版本库放置的目录位置
svnadmin.exe create C:/svnroot/MyRepo
版本库配置
服务器配置文件“conf/svnserve.conf”
[general]
## 密码数据文件名
password-db = passwd
## 匿名用户可读
# anon-access = read
## 认证用户可写
# auth-access = write
密码数据文件“conf/passwd”
[users]
## 用户名 = 密码
harry = harryssecret
服务器启动运行
1.直接运行执行如下命令,默认以服务器根目录为版本库根目录,访问时需要版本库文件夹的完整路径
svnserve.exe -d
2.指定版本库根目录
svnserve.exe -d -r C:/svnroot
3.将SVN作为Window服务运行(Subversion1.4以上版本)注意:
sc create SvnService binpath= "c:/Program Files/Subversion/bin/svnserve.exe --service --root E:/kiki_/svnproject/svnrepo" depend= TCPIP start= auto
等号前无空格后有空格。
应使用参数“--service”而不是“-d”,参数前面的横线不是一个是两个。
binpath内套的路径如果包含空格,也需要使用双引号,此时需要使用转义符表示内部的引号(/")。
4.使用“SVNService.exe”将SVN作为Window服务运行(Subversion1.4之前版本也可使用)
SVNService.exe -install -d -r C:/svnroot
注意:
用法与使用“svnserve.exe”类似,区别仅仅是把“svnserve.exe”换成“SVNService.exe -install”。
把“-install”替换为“-setup”和“-remove”可修改和删除服务。
客户端安装与运行
安装运行“TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.msi”
安装语言包运行“LanguagePack-1.4.5.10425-win32-zh_CN.exe”
Eclipse插件Subclipse安装
Eclipse插件在线更新地址:
For Eclipse 3.0/3.1 http://subclipse.tigris.org/update_1.0.x
For Eclipse 3.2+ http://subclipse.tigris.org/update_1.2.x
相关资源
Subversion http://subversion.tigris.org/
TortoiseSVN http://tortoisesvn.net/downloads http://tortoisesvn.tigris.org/
Svn1ClickSetup http://svn1clicksetup.tigris.org/
Subclipse http://subclipse.tigris.org/
Subversion中文站 http://www.subversion.org.cn/
在windows下搭建基于apache的SVN环境
1 软件下载:
在http://httpd.apache.org/download.cgi,下载:
apache_2.2.14-win32-x86-openssl-0.9.8k.msi
在 http://subversion.tigris.org/,下载:
Setup-Subversion-1.6.6.msi
在http://tortoisesvn.net/downloads,下载:
LanguagePack_1.6.3.16613-win32-zh_CN.msi
TortoiseSVN-1.6.3.16613-win32-svn-1.6.3.msi
备注:apache与svn安装时,需要注意一点版本是否兼容,注意查下版本匹配情况;
2 安装apache
安装apache 按照提示安装,可以自定义安装目录,如我安装在D:/Program Files/Apache下;
修改apache端口,在D:/Program Files/Apache/conf下的httpd.conf将listen 80 更改为listen 8000,保存,然后重启apache
检查apache是否安装成,访问http://localhost:8000,如果显示”it works”则表明安装成功;
备注:默认情况下apache是80端口,但是80端口经常会让其它服务占用,建议最好更改访问端口
3 安装svn服务端
安装svn服务端,按照提示安装,可以自定义安装目录,如我安装在D:/Program Files/Svn下;
4 安装svn客户端及汉化包
安装svn安户端及汉化包,按照提示安装即可,如我安装在D:/Program Files/TortoiseSVN
5 集成svn和apache
将Svn环境下bin目录中的mod_dav_svn.so和mod_authz_svn.so复制到Apache环境下modules目录下;
配置apache环境下的httpd.conf,去掉前面的#号;
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
将下面几行添加到LoadModule
部分的最后,注意svn的环境目录更改,需符号要求;
LoadModule dav_svn_module "d:/Program Files/svn/bin/mod_dav_svn.so"
LoadModule authz_svn_module "d:/Program Files/svn/bin/mod_authz_svn.so"
保存重启下apache,可以看到如下图所示:
6 配置apache和svn,让apache告诉svn如何工作
以下是我的具体配置情况可以参考下
<Location /svn>
#引用远程访问模块
DAV svn
#版本库路径
SVNListParentPath on
SVNParentPath d:/Svn/Project
#激活基本认证,就是用户名/密码
AuthType Basic
#用来说明何时弹出要求用户输入认证信息的认证对话框
AuthName "Subversion repositories"
#指定使用的认证密码文件
AuthUserFile d:/Svn/conf/passwd.ini
#位置Subversion版本库的访问控制文件的路径
AuthzSVNAccessFile d:/Svn/conf/authz.ini
#指定只有输入了正确的用户/密码的用户可以访问URL
Require valid-user
</Location>
更为详细的解释设置 Apache 的 httpd.conf
设置 | 解释 |
<Location /svn> | 意思是Subversion版本库的URL是http://MyServer/svn/ |
DAV svn | 告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。 |
SVNListParentPath on | 对于Subversion1.3或者更高版本,这个指示表示显示所有SVNParentPath下的版本库。 |
SVNParentPath D:/SVN | 告诉Subversion需要查看的版本库位于D:/SVN之下 |
SVNIndexXSLT "/svnindex.xsl" | 使用它可以在用浏览器浏览时更好看。 |
AuthType Basic | 激活基本认证,就是用户名/密码 |
AuthName "Subversion repositories" | 用来说明何时弹出要求用户输入认证信息的认证对话框 |
AuthUserFile passwd | 指定使用的认证密码文件 |
AuthzSVNAccessFile | 位置Subversion版本库的访问控制文件的路径 |
Require valid-user | 指定只有输入了正确的用户/密码的用户可以访问URL |
7 创建passwd文件来管理svn的访问权限
在开始菜单下,“运行”输入cmd,然后切换到apache/bin目录下:
第1个用户创建时用:htpasswd -c D:/svn/conf/passwd.ini yb.ma //其中passwd.ini为文件名,yb.ma为用户帐号
第2个用户创建时用:htpasswd D:/svn/conf/passwd.ini y.fan
可以找到具体的目录查看,如下图所示,验证是否创建成功:
8 SVN版本库及登录访问权限设置
在 D:/Svn/Project/目录下创建test1文件,然后通过svn客户端右键在此创建版本库;
将会得到如下效果图,则表明创建成功:
在D:/Svn/TempProjcet/test1创建如下配置库目录结构图,如我创建如下(可以根据自己实际情况定制)
导入配置库结构到版本库中,如右键导入,填写具体的地址:
备注:要导入的版本库必须在authz.ini文件中配置
在D:/Svn/conf创建authz.ini文件,然后文件中填写如下设置
#建立分组:admin, developer,pm,testers
[groups]
admin=yb.ma
pm=yb.ma
developers=yb.ma
testers=yb.ma
#预置设置
[/]
*=r
@admin=rw
dangerman=
#多个项目配置,一级目录权限
[test1:/]
@developers=rw
#branches二级目录权限
[/branches]
@testers=r
@developers=rw
#tags二级目录权限
[/tags]
@admin=rw
@pm=rw
#trunk二级目录权限
[/trunk]
@admin=rw
@developers=rw