SVN配置,WWW同步,添加注释才能提交

1、测试安装环境

#lsb_release �a

#uname �a

2、安装测试软件

(1)安装软件

# yum -y install subversion

(2)测试软件是否安装成功

#svnserve --version

3、新建一个目录用于存储SVN所有文件

#mkdir /opt/svn

该目录是SVN根目录,后期可以再执行新建版本库的命令用来创建多个项目

新建一个版本库,并初始化

#svnadmin create /opt/svn/oil

4、用户、权限配置

(1)修改版本库的配置文件

#vim/opt/svn/oil /conf/svnserve.conf

[general]

anon-access = none   #使非授权用户无法访问

auth-access =write  #使授权用户有写权限

password-db =passwd#指明密码文件路径

authz-db = authz     #访问控制文件

realm = oil#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字

其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.

(2)修改允许访问版本库的用户文件

#vim /opt/svn/oil/conf/passwd

文件格式如下所示:

[users]//不可省略

test = 123  //用户名密码对,每个用户一行

(3)修改用户访问版本库的权限

#vim /opt/svn/oil /conf/authz

注意:权限配置文件中出现的用户名必须在passwd文件中有定义过,对权限配置文件authz的修改会立即生效,此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。还可以对用户分组。

文件格式如下所示:
用户组格式:

[groups]

user_group_name= username1,username2 //用户间以逗号分割

版本库目录格式:

[test:/project/directory]//版本库:/项目/目录

@user_group_name= permissions //用户组名=权限

username= permissions //用户名=权限

[/]

test = rw

*=

注意:配置项所有的行都必须顶格,否则报错。

[]可以有多种定义/表示对全部的版本库设置权限,oil:/表示对oil设置权限,oil:/www表示对oil中的www项目设置权限,oil:/www/example.com表示对oil中的www项目的example.com目录设置权限。
可以用*来表示所有用户。权限可以设置为w,r,wr和空,空表示没有任何权限。

(4)启动默认端口 3690(关闭防火墙或者防火墙放行该端口,停用SELinux=>setenforce 0)

#killallsvnserve

#svnserve -d -r /opt/svn/oil

注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径

加入开机启动(echo “svnserve -d -r /opt/svn”>> /etc/rc.local)

(5)本地checkout一份查看版本号,看一下仓库中是否有文件

5、导入源代码到仓库

#mkdir �p/home/code/{trunk,tags,branches}

源代码路径:/home/code/trunk/oil

#svn import /home/code/ file:///opt/svn/oil -m “first import”

检查是否导入成功

#svn list --verbose file:///opt/svn/oil

本地再update一份查看版本号,看一下仓库中是否有文件

注意:web目录下一定要用TortoiseSVN checkoutRepositories的代码

步骤:

1.先把源代码导入到仓库中(已完成)

2.再在WWW根目录下checkout仓库中的代码(注意权限问题)

#pwd

/home/wwwroot/default

#svn cofile:///opt/svn/oil/trunk ./

#chown �Rwww:www oil/

#chmod �R777 oil/

3.本地工作目录也是checkout仓库中的代码

4.再配置钩子(post-commit可执行权限)

#chown ww:www post-commit

#chmod a+x post-commit

查看本机环境语言:#echo$LANG

1.cp /opt/svn/oil/hooks/pre-commit.tmpl/opt/svn/oil/hooks/pre-commit

2.chmod a+x /opt/svn/oil/hooks/pre-commit

3.vim /opt/svn/oil/hooks/pre-commit(黄色的为文档内容)

#/bin/bash

REPOS="$1"

TXN="$2"

 

# Make sure that the log messagecontains some text.

SVNLOOK=/usr/bin/svnlook

#$SVNLOOK log -t"$TXN" "$REPOS" | \ 

#   grep "[a-zA-Z0-9]" > /dev/null|| exit 1

 

# Check that the author of thiscommit has the rights to perform

# the commit on the files anddirectories being modified.

#commit-access-control.pl"$REPOS" "$TXN" commit-access-control.cfg || exit 1

 

# All checks passed, so allowthe commit.

#exit 0

 

LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep"[a-zA-Z0-9]" | wc -c`

if [ "$LOGMSG" -lt 10 ];#要求注释不能少于5个汉字,您可自定义

then

echo -e"\n======================================================"1>&2

echo -e "\n请在Commit(提交)前为您的补丁添加必要的注释。\n本次提交被忽略。"1>&2

echo -e"\n======================================================"1>&2

exit 1

fi

4.重启svn


你可能感兴趣的:(SVN,www)