Svn的安装
1. 下载svn的服务器Subversion
到Subversion的官方网站上下载Subversion服务器的安装包, http://subversion.tigris.org/servlets/ProjectDocumentList?expandFolder=469&folderID=260
2. 安装Subversion服务器
把下载下来的安装包 Setup-Subversion-1.6.0.msi 运行执行,按照提示完成安装,可以改变安装路径。此版本为目前最新版本
3. 下载客户端
到tortoisesvn的官方网站上下载客户端
http://tortoisesvn.net/downloads
4. 根据自己的机器标准来下载,下载成功以后,执行安装文件,按照其实完成.
配置Subversion
1. 新建一个目录,用着仓库d:\svnroot\to\repository
2. 告诉svn的仓库,执行命令svnadmin create d:\svnroot\to\repository –m “initial repository” 或者通过TortoiseSVN建立repo根目录,创建好后,就可以通过file:/// d/svnroot/to/resporsity或者file://localhost/ d/svnroot/to/repository在TortoiseSVN上的Repo-Browser就可以访问
3. 仓库的访问http:// https:// svn:// svn+ssh:// file:/// svn+XXX://上面这几种协议.现在主要介绍http://和svn://两种方式,file:///只能在本地使用的.也可以在局域网上使用, 例如file://server/d:/svnroot/to/repository。svn协议使用3690端口,如果防火墙无法打开端口,可与Apache整合使用http协议。
4. 采用svn协议的好处是安全性比较强,可任意更改服务监听端口。运行%SVN_HOME%\bin\svnserve –d –r d:\svnroot\to,也可以写成%SVN_HOME%\bin\svnserve –daemon –root d:\svnroot\to,即可按照daemon方式来运行一个后台进程,监听svn协议的请求。-r的作用是声明root目录。
5. 在linux下运行一个daemon进程非常简单,但是在windows中想让进程在后台运行就需要做成服务才行。下载并安装SVN Service Wrapper,将svnserve包装为服务。也就是把得到的SVNService.exe文件放到Subversion安装目录的bin目录下面就可以了.
6. 执行svnservice -install -d -r d:\svnroot\ to 安装svn仓库目录, 在控制面板->服务中手动开启。用TortoiseSVN浏览svn://localhost/,注意要带上最后的“/”指明root才能正确访问。使用权限控制. %REPO_HOME%/conf/ svnserve.conf,把下面几句代码前的#去掉:
[general] # 指定匿名可读,授权后才可写入 anon-access = read auth-access = write # 指定密码文件为当前目录下passwd #password-db = passwd # 指定授权文件 #authz-db = authz |
注意: %REPO_HOME%指的是仓库的目录,就是通过TortoiseSVN或者指令svnadmin create “d:\svnroot\to\repository” –m “initial repository”的目录d:\svnroot\to\repository
7. Passwd文件内容如下,用户名 = 密码:此文件和svnserve.conf文件在同一个目录下面.
[users] lgh1117 = 123456 |
8. 修改授权文件authz,
[groups] # 组名称 = 用户1,用户2 …… dev = lgh1117
# [/] # harry = rw # * = # 可访问的目录权限,[/]表示根目录,权限是读(r),写(w),*表示通配 [/] lgh = rw
# [repository:/] # @harry_and_sally = rw # * = r # 各用户组对仓库的访问权限 [repository:/] @dev= rw |
以上就是用svn://协议访问subversion的仓库模式.
使用svn与apache集成
1. 下载apache软件安装包,到网站 http://archive.apache.org/dist/httpd/ 可以下载到apache http server
2. 安装apache http server,运行安装程序就可以,会提示端口冲突问题,这个先不用管,直接安装就可以.
3. 启动的时候会不能启动,查看安装目录下面的logs下面的error.log文件,如果有端口冲突,那么,就到安装目录下的conf文件夹下面,找到httpd.conf问价,修改查找到 ” Listen”这个关键字,把后面的数字改成你想要的端口就可以,保存从新启动就没有什么问题了.
4. 配置svn和apache的集成,
1). 打开httpd.conf文件,查找文件里面是否有下面两项,并把前面的#去掉
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
增加下面两个模块
loadModule dav_svn_module "D:\Subversion\bin\mod_dav_svn.so"
loadModule authz_svn_module "D:\Subversion\bin\mod_authz_svn.so"
这两个模块的文件是在subversion安装目录bin下面存在的,这个就指向了这两个文件所在地址
2). 在文件尾部添加下面的代码
<Location /svn>
DAV svn
#SVNPath D:\ svnroot\to\repository
SVNListParentPath on
SVNParentPath D:\svnroot\to
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile D:\svnroot\subversion\conf\passwd
AuthzSVNAccessFile D:\svnroot\subversion\conf\authz
Require valid-user
</Location>
说明:
DAV svn:告诉服务器,请求这个地址时,执行svn服务
SVNPath D:\ svnroot\to\repository:仓库路径
SVNListParentPath on:1.3版本以上的支持,查看所有的父类目录下的仓库.
SVNParentPath D:\svnroot\to:仓库的上一级目录,就是父类目录
AuthType Basic:访问的时候,是要通过授权的
AuthName "Subversion repositories":授权提示
AuthUserFile D:\svnroot\subversion\conf\passwd:授权认证文件,是通过apache目录bin下面的htpasswd.exe生成的,生成方式如步骤7
AuthzSVNAccessFile D:\svnroot\subversion\conf\authz:授权文件,是在仓库里面的授权文件,用apache生成的用户名和密码也在这里给指明授权.
Require valid-user:只有授权才能访问资源
如果文件路径中有空格的,一定要有“”括起来
说明:上面这样就算配好了apache与svn的集成
5. 访问资源,可以通过浏览器,也可以通过TortosieSVN来访问,访问地址是:
repository指的是仓库目录.
6. 上传文件到svn服务器有种方法,命令方式格式:svn import 原文件目录 服务器url,这种方式的话,就得在源文件里建三个目录,trunk,tags,branches,再把要上传的内容放在branches里面.
也可以是用TortosieSVN客户端来上传,找到要上传的文件夹,点击鼠标右键,找到TortosieSVN,展开,找到Import..就可以了,如果你不想许多代码都混在一起,最好就用TortosieSVN客户端新建一个Subversion服务器的目录,在把代码传到里面.
7. 打开DOS窗口,进度到apache安装目录的bin目录下,本人的是在C盘,apache默认安装路径下,执行命令如下:
#生成passwd加密文件,用户名lgh1117,密码123456
htpasswd -cmb passwd lgh1117 123456
#在原有的用户文件中增加一个新的用户
htpasswd -mb passwd zhangsan 123456
通过以上步骤,就完成了apache与svn的集成,并且实现了apache的认证方式就行登录访问限制