svn管理员高级操作:设置子项目和强制写注释

摘要

基于svn的版本控制,服务器管理员重点解决两个问题:(1)如何通过一个svn服务器进程,管理多个svn项目,而这些svn项目也需要有各自独立的账号密码和权限控制。(2)如何像git一样,提交代码(commit)的时候,强制要求客户端写注释。

关于svn和git的对比,本文不展开讨论,基于svn的版本控制,服务器管理员新建一个svn项目,设置账号密码等权限,属于初级操作,网上也有很多资料可以查询,这里重点解决两个问题:

(1)如何通过一个svn服务器进程,管理多个svn项目,而这些svn项目也需要有各自独立的账号密码和权限控制。

(2)如何像git一样,提交代码(commit)的时候,强制要求客户端写注释。

下文是针对解决这两个问题的操作记录和踩坑纪实,希望对svn管理员有所帮助。

设置SVN子项目

我们搭建的SVN服务器,需要处理多个不同的项目,而每个项目又需要独立的账号密码和权限管理,需要设置SVN子项目。

1、创建SVN版本服务器项目

新建一个目录,例如yanyubao.cn,进入目录中,点击鼠标右键,通过TortoiseSVN,选择“”,一个SVN项目的服务器端就创建了。

2、SVN的项目目录结构

创建成功的提示中,直接点击“OK”,不建议使用“Create folder structure”,因为创建的目录结构既复杂又没有实际用处。

3、修改SVN服务器的设置项

这个时候的项目不具有子项目属性,我们需要修改文件“conf/svnserve.conf”,修改权限验证以及“realm”选项的值,如下图所示。

4、设置账号密码和子目录权限

分别在passwd和authz两个文件中设置账号密码和子目录权限,这两个配置文件中有设置的示例,可直接参考使用,这里不再赘述。

/conf/passwd
/conf/authz

5、启动SVN版本服务器

这是最后一个步骤,也是最重要的,建议通过以下命令启动:

"C:\Program Files\TortoiseSVN\bin\svnserve" -d -r E:\Temp\SVN_Server\

这样启动的服务,使用的是默认端口3690。实际生产环境中,我们处于安全考虑,不会开放这个默认端口,所以可以通过选项“--listen-port”将服务器设置为其他端口,例如:

"C:\Program Files\TortoiseSVN\bin\svnserve" -d -r E:\Temp\SVN_Server\ --listen-port 3691

特别提示:这里使用的目录为“E:\Temp\SVN_Server\”,在这个目录下,跟“yanyubao.cn”同级的目录下,可以创建更多的SVN子项目,而每个子项目中,我们可以通过“conf/authz”再分别设置不同子目录的权限。

6、客户端的请求

以上服务启动后,客户端请求时候的网址需要注意路径的拼写,我们以本地的SVN服务为例(即服务器和客户端在同一台电脑上),以上搭建的SVN服务,我们需要checkout等操作的时候,请求路径为:

svn://127.0.0.1:3691/yanyubao.cn

其中的子目录为“yanyubao.cn”是一定要加上的,如果不加上,会找不到对应的路径,因为根目录下没有项目。

如果项目下还有其他的子目录,例如test001,则完整的路径为:

svn://127.0.0.1:3691/yanyubao.cn/test001

提交代码(commit)的时候要求强制写注释

1、创建新文件pre-commit.bat

在SVN项目的hooks目录下,找到文件pre-commit.tmpl,改成其他名称,比如:pre-commit----.tmpl

复制刚才改名的文件,设置新文件名称为“pre-commit.bat”。

2、设置pre-commit.bat文件内容

复制以下内容到pre-commit.bat文件中并保存。

@echo off
rem SVNLOOK 为 svnlook.exe 在 VisualSVN Server 安装目录\bin 中的路径
set SVNLOOK="C:\Program Files\TortoiseSVN\bin\svnlook.exe"
setlocal
set REPOS=%1
set TXN=%2
rem "....." 代表5个字符(1个 . 代表1个字符)
%SVNLOOK% log "%REPOS%" -t "%TXN%" | findstr "....." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo 提交失败!请添加注释(注释内容不能少于5个字符)之后重新提交! 1>&2
exit 1

3、修改pre-commit.bat权限

在Windows的文件管理器中,查看文件属性,给文件“pre-commit.bat”设置可执行权限。

正常情况下,不需要重启SVN,即可立即生效。

4、在SVN客户端验证设置是否生效

直接提交修改的代码,不写注释,会看到红色的错误提示。

admin

目前评论:1   其中:访客  0   博主  0

  1. avatar 156****3152 0

    6

评论加载中...

发表评论: 使用手机百度APP扫描左侧二维码, 或者微信扫描右侧太阳码