本节和大家讨论一下如何配置本地SVN服务器,大家对于Linux和Windows下SVN服务器的配置相信都不陌生了,那么怎样配置本地SVN服务器呢,请看本节介绍。
使用SVN已经四年,变得开发项目离不开“她”了,非常方便。我喜欢用她管理自己的软件代码,各种工具,各种重要文档,这使我的开发工作变得非常轻松而有条理,以前使用的是美国的商用的wush.net,现在老板想在本地配置SVN,花了一点时间,基本配置完成,希望以后大家和我自己不要走弯路。我选择的软件是apache+subversion+TortoiseSVN。
1)apache主要是把你电脑配置成一个服务器,提供URL,设置各个用户信息,以及加入SVN。
推荐使用:http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.0.63-win32-x86-no_ssl.msi,记得设置一下的skype,不要占用80端口,其他的就没什么了,安装一直点击“Next”就ok了。
2)subversion建立SVN仓库,设置用户以及权限
推荐使用:http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe
3)TortoiseSVN客户端,随便下载个就可以。
首先设置你电脑的固定IP,我设置为“192.168.1.239”,其次准备一个比较干净的比较的硬盘,就可以配置了。
1)建立一个数据仓库
配置本地SVN服务器过程中需要创建一个数据仓库。前面安装的subversion已经生成环境变量,所以bin下的.exe可以在DOS命令下直接运行。先创建E:\svn\MyProject,然后命令行敲入:svnadmincreateE:\svn\MyProject,如果运行成功的话,什么也没有输出,这个时候,我们再来到MyProject文件夹下面,我们会发现多了几个文件夹和文件,我们打开conf文件夹,然后再打开svnserve.conf文件,找到如下行#password-db=passwd,然后把它前面的#去掉,表示MyProject是需要密码验证的.但是我们密码设在哪里呢,这个时候我们再打开conf文件夹下面的passwd文件,用文本编辑器打开,在[users]下面加上我们需要启动的人员的用户和密码,比如
[users]
hadeslee=hadeslee1234
tom=123456
这个的话,我们就启动了两个用户,一个叫hadeslee,密码是hadeslee1234,一个叫tom,密码是123456.然后我们保存passwd文件.然后,我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面内容如下:
[MyProject:/]
hadeslee=rw
[MyProject:/module1]
tom=rw
hadeslee=rw
这表示,MyProject下面的所有子目录hadeslee都是有权限读写的,但是tom只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了.有关于MyProject文件夹下面的设置,我们就告一段落了。
2)我们现在开始设置apache,使它能和subvertion一起工作。
配置本地SVN服务器中设置Apache。首先来到Subersion的安装目录,进入它的bin目录,我们会发现如下两个文件:
mod_authz_svn.so
mod_dav_svn.so
我们把这两个文件复制一下,粘帖到apache的安装目录下的modules文件中,然后我们再打开apache安装目录下的conf文件夹,打开httpd.conf文件.增加如下两行:
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
把指向具体地址的相同两行注释掉,#为注释。
注意,由于dav_svn需要dav_module的支持,所以要确保下面这一行没有被注释,并且保证在dav_svn之前加载:
LoadModuledav_modulemodules/mod_dav.so
然后模块的设置就完成了,下面我们要设置SVN的目录,以使我们的apache能知道访问不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录.
在httpd.conf文件中,增加如下内容:
- <Location/svn/MyProject>
- DAVsvn
- SVNPathE:/svn/MyProject
- AuthzSVNAccessFileE:/svn/MyProject/conf/access.auth
- SatisfyAny
- Requirevalid-user
- AuthTypeBasic
- AuthName"Subversionrepositories"
- AuthUserFileE:/svn/MyProject/conf/users.auth
- Requirevalid-user
- </Location>
此处注意反斜杠方向!添加完上面这些,我们会发现access.auth是我们刚才新建的,现在我们就来生成users.auth文件.进入apache的安装目录的bin文件夹,输入如下命令:
D:\ProgramFiles\ApacheGroup\Apache2\bin>htpasswd-cbusers.authhadesleehadeslee1234
AutomaticallyusingMD5format.
Addingpasswordforuserhadeslee
D:\ProgramFiles\ApacheGroup\Apache2\bin>
我们就会发现在bin目录生成了users.auth,我们可以看到,hadeslee用户名已经被添加进去了,密码是用MD5加密过的.然后我们还要增加用户呢,可以用如下方法:
D:\ProgramFiles\ApacheGroup\Apache2\bin>htpasswd-busers.authtom123456
AutomaticallyusingMD5format.
Addingpasswordforusertom
D:\ProgramFiles\ApacheGroup\Apache2\bin>
只是在生成密码的时候,小了一个c的参数,因为c表示重新生成一个这样的文件,我们第一次的时候是要加的,后面我们要添加用户的时候,就不用这个c了.然后打开users.auth,会发现两个用户都已经在里面了,这个时候,我们把users.auth移到E:/svn/MyProject/conf/里面去,使我们上面的设置生效.
3)使用SVN
配置本地SVN服务器过程中如何使用SVN。我们的设置就完成了,重启一下。可以在浏览器里面输入http://localhost/svn/MyProject(http://192.168.1.239/svn/MyProject)试试看,其他同事也可以看看。使用TortoiseSVN就可以checkin和checkout。
如果以后我们还要加入其它的项目呢,可以有两点解决方式
1,把以后的项目也导入到我们的MyProject的仓库中,这个的话,就不用改什么配置了
2,新建一个数据仓库,然后只要按上面的步骤,把新的<Location...>设置放到httpd.conf里面就可以了.
当然,验证文件,访问权限文件,还有访问SVN的密码都要自己按上面的方法再设一遍.
注意:
1)skype占用80端口
2)卡巴斯基,把subversion带乌龟的二个.exe设置为信任程序,四个选项全部勾上
3)有些东西只是一个基本的概念,也参考的其他同仁的文档,不清楚的上他们网站,或者google一下。本地SVN服务器介绍完毕,请关注本节其他相关报道。
【编辑推荐】