首页 > SCM > Windows下SVN服务器的搭建

Windows下SVN服务器的搭建

作为一个软件开发人员,关于scm的重要性和必要性,相信我不用说了,目前最流行的的两个版本控制工具svn和git,关于这两个区别还是很大的,而git功能更强大,猜测以后会越来流行,在svn作为打败众多SCM工具的一个版本控制系统,他目前的使用还是非常多的,而且操作也非常简单,所以这一节就写一下svn服务器的搭建,有机会将来在写一篇关于git烦人使用的文章。好了,下面进入今天的正题:

首先推荐大家下载Subversion,随便哪个版本都行,安装过程就不说了,可以说是一路next,那么服务器就转好了,下面经过一些设置就可以使用了。
注:可以再cmd中敲一下 svn,看是否安装好了

第一步:在服务器上建立核心仓库,这个很简单,就一个命令

svnadmin create svnrepo

其中svnrepo就是我们的核心仓库,在那个路径下敲,那么这个仓库就会在哪个路径下,那么我们放东西的大仓库就建好了,另外名字我们可以随便写,自己看着什么顺眼就起什么,不过最好做到见名知意

第二步:权限设置,即哪些人可以访问,哪些人不可以访问,这个也很简单,我们进入第一步创建的svnrepo文件下,然后进入conf文件夹,打开svnserve.conf文件,这个文件保存着svn的常见设置,

我们首先找到

# password-db = passwd

这一行,把前面的注释去掉,也就是把#去掉,最好连空格一块去掉。这个是说明,如果访问我们的服务器,需要在另一个文件中,即passwd文件中配置,同时我们也可以找到这两行:

# anon-access = read
# auth-access = write

也就是匿名访问的权限,匿名访问我们最多给他只读的权限,这个随你的便。

第三步:既然第二步说了我们的密码在passwd文件重配置,那么肯定是打开这个文件,进行配置了,我们可以看到默认有两个人,而且这两个人也是注释掉的,我们可以在下面加自己的用户,前面是用户名和密码,例如:

bridgeli = abc123_

注意两点,1. 这个用户名前面一定不要有空格,否则svn会认为这个用户的名字带空格,很别扭;
2. 你们项目组,有几个人你就填加几个用户名啦,那么这样大家都可以有自己的用户名去提交代码了。

第四步:svn的仓库,我们建好了,配置也做好了,那么现在肯定是把服务器起起来了,起服务器的命令如下:

svnserve -d -r svnrepo

其中-d代表后台启动,-r代表root用户,相信知道Linux的对这个用户一定不陌生。svnrepo,就是我们的仓库名。
切记:这个窗口一定不要关,如果关了那么服务器就关了。

那么到此为止,我们svn服务器就建好了,大家就可以往里面提交代码了,但是但是大家有没有发现一个问题,我们很随便就可以提交代码了,大家在提交代码时,有经验的项目经理,一定会要求手下每个提交代码的同学,写上注释,如果不做限制,就这样那么问题就来了,总有人会无意中忘了怎么办?那么我们是不是可以在服务器端限制一下要求所有人必须提交代码呢?答案是肯定可以的。(其实在TortoiseSVN客户端也是可以的,但是但是大家都懂得,在客户端设置这个就太不靠谱了),下面给出在svn服务器端的设置,那么大家就必须在提交时必须写注释了

我们在我们的仓库中的hooks文件夹中,找到pre-commit.tmpl文件,在windows下可以修改这个文件为pre-commit.bat,然后把里面的内容修改为如下:

@echo off

setlocal

set REPOS=%1

set TXN=%2

rem check that logmessage contains at least 10 characters

rem .....代表5个字符

svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul

if %errorlevel% gtr 0 goto err

exit 0

:err

echo Empty log message not allowed. Commit aborted! 1>&2

exit 1

修改为bat相信大家都知道让Windows知道是可执行文件,据说不加后缀也可以,关于这个我没有测试过,大家可以自己测试,在测试之前呢,为了避免库被破坏,我们可以自己先备份一下。

分享到:
作 者: BridgeLi,http://www.bridgeli.cn/
原文链接:https://www.bridgeli.cn/archives/110
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
分类: SCM 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.