搭建SVN服务器(最简单的方法,适合初学)
我初进CM行当,深切了解一点不了解SVN时搭建SVN服务器的痛苦,所以我觉得网上的一些资料过于深奥,对刚入门的来说,不太能明白,所以能用简单的方法达到一样的效果,何乐而不为呢。
我从拿到一台机器开始说,当然这台机器装有windows的操作系统。
1、先安装apache,我采用的是apache_2.0.59-win32-x86-no_ssl.msi,安装过程中只有一个页面是需要填写的,但是我安装自己机器的时候,它默认的按照我们公司的实际情况已经给填写好了,所以我就没有管它,不知道你们安装的时候也是不是这种情况,还有这个为什么我还不太清楚。apache就默认路径就行。端口号默认选80,但如果冲突,你可以上C:\Program Files\Apache Group\Apache2\conf地下的http.conf里面找listen:这句话,改成81就行。但一般新装系统的机器是没有这种情况产生的,但是比如说你新装svn服务器所在机器的系统是为了扩充硬盘的问题,那你就得注意,如果以前项目组使用的是81端口,那装完apache以后手动把listen:改成81,这样的话方便项目组使用,尽量让他们的操作没有丝毫变化。最后验证apache安装是否成功,可以用ie访问 http://localhost
看出现已经配置好的网站,就说明你安装成功了,如果没成功重装的话你注意卸载的时候把安装目录也全部删除了,有时候删除不了,你可以等会儿,或者重启一下机器就行了。
2、安装svn服务器端,我采用的是svn-1.4.0-setup.exe,也许存在一个配套的问题,当然我提供的那俩装完了是绝对没有冲突的,svn服务器端的安装就采用默认方式就行。届时apache跟svn服务器端都安装在了C:\Program Files底下。
3、安装svn客户端,也是一路默认就行,最后你可以装个LanguagePack-1.4.0.7195-RC1-win32-zh_CN.exe汉化工具,直接双击它安装,最后在随便一个空地右键,选小乌龟,再选设置,常规设置里把语言选成中文就行。使用中文的话更方便一些,但也看个人喜好了。
4、新建版本库,当然位置随你的方便选,比如说我建在D盘的根目录下一个文件夹叫test,然后里面再建一个文件夹叫test1,在test1上点右键小乌龟,选在此创建版本库,注意一定得是个空文件夹,而且这个步骤也可以用个命令来实现,但我觉得能不用命令的就不用命令那么麻烦了。而且我这里嵌套了两层目录,完全可以再test底下直接创建版本库,只是因为可以创建多个版本库在test下,跟test1同级。同时在test文件夹里创建一个passwd文件,没有后缀名那种的。暂时先为空吧,等以后用到的时候再详细说怎么用这个文件,同样在test1文件夹里创建一个access文件,也是没有后缀名那种的,也暂时为空。
5、开始配置apache,进入Subversion\bin的目录,将mod_dav_svn.so和mod_authz_svn.so、libdb44.dll拷贝到apache group\apache2\modules目录。打开apache group\apache2\conf\httd.conf,掉以下行的注释符#:#LoadModule dav_fs_module modules/mod_dav_fs.so,然后在LoadModule节的最后添加以下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so,最后在配置文件的最后加上<Location /test1 >
DAV svn
SVNPath D:\test\test1
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile D:\test\passwd
AuthzSVNAccessFile D:\test\test1\access
Require valid-user
</Location>
以上的参数都是根据上面我建的实际情况填的,大家可以根据各自的实际情况填写这些参数。这段以<Location></Location>代码,以后如果建了第二个版本库,比如跟test1同级的test2,你就再加一段test2的<Location></Location>就行,但是注意,test1跟test2可以公用一个passwd文件,所以关于passwd文件的地址永远是一样的。
6、创建用户,即使passwd文件里的内容不空了。这时候使用命令,cmd打开dos窗口,cd切换目录到C:\Program Files\Apache Group\Apache2\bin,打htpasswd -c D:\test\passwd zy,回车让输入密码两次。这里zy是我取的用户名。这时候你打开passwd文件就发现里面就写的东西了,除了zy不是乱码外,别的都是乱码,因为密码保护的问题吧。因为是第一次创建用户就用-c,以后再增加就不能用-c了,再要用的话我发现就去掉以前所有的用户了,你要增加用-m,删除用户用-D,给人修改密码也跟增加的操作一样。所以以后每次有人让你哪个哪个项目加一个人的权限,你可以先看一下passwd里有没有他的用户,直接查名字就行,如果没有再给他-m,有就直接针对那个项目改access文件就行。我在这里先就上面那样创建一个叫zy的用户。
7、设置每个项目的access文件,记事本打开编辑,
[groups]
scm=zy
all=zy
[/]
@scm = rw
@all = r
最简单的就写成这样,当然根据项目的实际情况分不同的组,加很多的人,而且还会有很多级的文件夹,每个文件夹下规定每个组的权限。注意这里千万不要出错,比如说你上面的组叫cm,你下面写成了@scm,你就发现所有人都访问不了库了。而且还有一个需要注意的就是如果你建的库里将来有中文名字的目录,你就得用EmEditor来编辑这个access文件,保存类型:All Files(*.*);Encoding选择UTF-8格式;Add a Unicode Signature(BOM)不选择这个选项;Return Method选择:No Change;直接替换原来的即可。我不管这个为什么,只要这么操作就行。
8、设置完了这些以后,你建一个空文件夹,把库checkout下来,选中这个空文件夹点检出,直接目的地址就是这个文件夹,上面的源地址,如果是本机你操作的话可以输入http://localhost/test1,如果不是本机localhost可以换成那台机器的ip地址,如果端口号是80就那样,如果是81的话还得在ip地址后加上:81,提示输入用户名密码,你这时候用zy用户即可,然后可以在这个文件夹里写东西,比如说初始建库的时候可以把空目录传上去,就是用客户端提交,就是把一堆空目录放到这个空文件及里,点空文件夹邮件提交,选中所有新加的东西点确定。
这样差不多操作都完了,我就每次都用这样的简单操作,至于有些说要改什么版本库文件夹底下的svnserve.conf、authz、passwd等文件,估计也能实现统一的效果,但我觉得太繁琐了,我喜欢我的方法。
有什么不对的请大伙指正,欢迎~