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 checkout出Repositories的代码

步骤:

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

时间: 2024-08-11 03:38:02

SVN配置,WWW同步,添加注释才能提交的相关文章

如何设置SVN提交时强制添加注释

windows版本: 1.新建一个名为pre-commit.bat的文件并将该文件放在创建的库文件的hooks文件夹中 2.pre-commit.bat文件的内容如下: @echo off set SVN_BINDIR="C:\ProgramFiles\Subversion" set SVNLOOK="E:\freescm\freescm\SVN\bin\svnlook.exe" setlocal set REPOS=%1 set TXN=%2 rem check

svn提交时强制添加注释 (转)

SVN提交时,如果没有注释,在查阅历史时,会非常不方便.因此我们需要有一个让程序员提交代码时,强制添加注释的规则.下面看看在SVN中怎么实现. 1. 推荐使用VisualSVN作为服务端(免费下载地址:http://www.visualsvn.com/).安装完毕后,打开VisualSVN Server管理器,在版本库上点击"属性",选择"Hooks"选项,选中"Pre-commit hook"后,点击"Edit".(如下图)

svn提交时强制添加注释

负责前端开发的同事提出需求,svn提交时必须添加注释,否则有可能不知道代码是谁提交的. 搭建svn服务器时,用的是CollabNetSubversionEdge.添加用户,管理工程权限都挺方便.让某个工程在提交时添加注释,需要在svn的hooks目录下,新建一个pre-commit的文件并给它可执行权限. 代码如下: #!/bin/bash REPOS="$1" TXN="$2" SVNLOOK=/local/csvn/bin/svnlook LOGMSG=$($S

如何让SVN提交时候强制添加注释

一.右击需要设置的库,依次选择"所有任务","Manage Hooks" 二.选中Pre-commit hook,点击"Edit",或者直接双击Pre-commit hook 三.打开Pre-commit hook后,添加代码 @echo offsetlocalset REPOS=%1set TXN=%2rem check that logmessage contains at least 40 charactersrem ...........

svn 强制用户添加注释 和 允许用户修改注释

当我们用TortoiseSVN提交代码时,有很多人不喜欢写注释,导致以后代码版本多,也不清楚哪个版本到底改了什么东西.所以在提交的时候,我会强制要求添加注释.这是如何实现的?这个话题就涉及到了svn的Hooks功能的使用. 所谓hooks,可以类似理解Linux内核Netfilter框架的hook点和hook函数的概念.当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就会去执行对应hook点的脚本. 那么如何设置hook脚本以保证强制用户添加注释,以及允许用户修改注释呢? 1

SVN的Hooks功能--强制添加注释

所谓hooks,可以类似 理解Linux内核Netfilter框架的hook点和hook函数的概念.当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就 会去执行对应hook点的脚本. SVN版本库目录下有hooks目录,里面有很多.tmpl的文件.这些文件用以定义某些动作触发的 hook脚本.默认状态下,这些脚本的后缀都是.tmpl,是没有起作用的.相当于Netfilter的各个hook点没有注册hook函数.所以,当用 户执行相关维护代码动作的时候,也不会触发hook脚本.

svn钩子自动化同步代码提交任务

##############################################################第一种方式:svn服务端  也是rsync的客户端web        是rsync的服务端svn服务端执行:[[email protected] ~]#sh yum-svn02.sh[[email protected] ~]#mkdir /var/www/bbs -p[[email protected] ~]#svn checkout http://192.168.13.

iOS开发XCODE5 SVN配置 使用办法 (转) 收藏一下

标签: xcode5svn xcodesvn使用 xcode自带的svn xcodesvn版本操作 xcode自带svn版本   这两天响应老板要求,把所有代码放到公司的SVN服务器上,按照我的想法肯定是就苹果组建一个服务器,然后内部版本控制,自带的Xcode就有这个功能,之前也这么做过,但是xcode4.X系列SVN还是很好用,自从升级到Xcode5之后还没弄过.今天试了一下午还是没完全明白,眼看弄不出来,就直接用命令行了,不过一些简单的东西还是试出来了. 1.如何使用Xcode5  SVN从

iOS开发XCODE5 SVN配置 使用办法

第一次弄svn版本控制,折腾了好久一直都出错!无意间看到一篇文章!貌似解决了,很感谢“代码妖娆” 的详细流程(http://blog.sina.com.cn/s/blog_68661bd80101phpy.html)!在此为只记录下给我解决的问题. 这两天响应老板要求,把所有代码放到公司的SVN服务器上,按照我的想法肯定是就苹果组建一个服务器,然后内部版本控制,自带的Xcode就有这个功能,之前也这么做过,但是xcode4.X系列SVN还是很好用,自从升级到Xcode5之后还没弄过.今天试了一下