注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

cooljun的博客

>>静静的心里 ,都有一道最美丽的风景<<

 
 
 

日志

 
 

Linux上部署SVN  

2013-07-22 10:27:16|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

已经写了很久了的文档,怕放在电脑里面丢了。特意记录到博客上!

一、服务器环境:

CentOS 6.3 64位

二、部署SVN步骤:

1、安装SVN

yum -y installsubversion*

2、创建版本库目录(这里我是放在data目录下)

#cd /data

#mkdir svndata   (这里的名称可以自己随便起)

3、启用SVN

         #svnserve -d -r /data/svndata     

// -d 是表示svn服务将会作为一个服务程序运行在后台

// -r 是表示把/data/svndata 作为SVN的根目录

4、 创建一个SVN的项目(建立版本库)#svnadmin create /data/svndata/test

//创建名称test的svn项目

5、 修改配置文件在进行源代码管理时,为了安全起见,需要对用户的权限进行控制,主要通过三个配置文件来实现:svnservice.conf、passwd、authz。

1)svnservice.conf文件指明是否需要进行访问控制以及第二、三个文件的位置;

2)passwd文件存放用户帐号及密码等信息;

3)authz文件存放用户的访问权限。

6、配置文件具体配置如下:

1) #cd /data/svndata/test/conf   //到修改配置的版本库下的配置文件目录

2) #vi svnserve.conf

将anon-access = read、auth-access = write前面的#号去掉,将"anon-access = read"改成"anon-access = none"使受权用户可以进行写操作;

将auth-db=authz前面的#号去掉,表明用户访问权限文件为当前目录下的authz文件;

将password-db=passwd前面的#号去掉,表明密码文件为当前目录下的passwd文件。

Linux上部署SVN


注意:前面的空格最好也去掉

3) 打开passwd文件,在末行添加账号及密码

Linux上部署SVN


4) 打开authz,给添加的用户授权

a、可以将用户添加到[groups]组中,然后针对这个组进行授权

例如:

将用户”yanglei” 添加到”tarylei”组中,然后针对这个组授予读写权限

Linux上部署SVN


b、 直接针对这个版本库进行授权

Linux上部署SVN


c、针对这个版本库下的目录进行授权,比如说,你使用CI写的程序已经提交到这个版本库中了,libs下,只给看控制器    那么就可以这样授权:

[/libs/controllers]

baidu= rw

7、客户端使用创建的版本库

1)首先需要在linux防火墙中添加上SVN所使用的端口3690

2)直接使用svn检出,版本库URL,是填写ip地址后面跟上版本库名称

比如:svn://192.168.10.10/test

Linux上部署SVN


8、实现SVN与WEB同步解决方案

1) 这里假设svn对应的项目是在/home/www/test目录下

2) 首先checkout一份svn到这个项目下

#svn co svn://localhost/test  /home/www/test

3) 修改权限为WEB用户

#chown -R www:www /home/www/test

4) 创建同步脚本

#cd /data/svndata/test/hooks

#cp post-commit.tmpl post-commit

#vi post-commit

#在其最后一行添加以下内容

export LANG=en_US.UTF-8

WEB=/home/www/test

$SVN update $WEB -usernameyanglei -password yanglei#2013

chown -R www:www $WEB

保存退出wq

######################################################

如果上面的更改不起作用,则使用下面的方式:

export LANG=en_US.UTF-8
WEB=/home/www/test
$SVN update $WEB --username yanglei --password yanglei#2013  --no-auth-cache

chown -R www:www $WEB

######################################################

5) 授予post-commit可执行权限

#chmod+x post-commit

6) 关闭svn服务并重启使更改生效

#killallsvnserve

#svnserve-d -r /data/svndata/

7) 测试是否起作用

#cd/home/www/test

#svn up

如果提交客户端提交过来的文件可以直接同步到这里,则说明成功了!

Linux上部署SVN


OK,表明成功了

9、SVN强制要求提交添加注释

#cd/data/svndata/test/hooks/

#cppre-commit.tmpl pre-commit

#vi pre-commit

1)将$SVNLOOK log -t"$TXN" "$REPOS" | 
                     grep "[a-zA-Z0-9]" > /dev/null ||exit 1 
                   commit-access-control.pl "$REPOS""$TXN" commit-access-control.cfg || exit 1               这三行注释掉

Linux上部署SVN


2) 在在”# commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1”后添加:

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

if [ "$LOGMSG" -lt 8 ]

then

echo -e "\nLog message cann't be empty! you must input more than 8 chars as comment!" 1>&2

exit 1

fi

Linux上部署SVN


保存退出(这里是设定必须输入八个字符以上的内容)

3)授予pre-commit可执行权限

#chmod +x pre-commit

4)杀死svn服务,然后重新启动svn服务

#killall svnserve

#svn –d –r /data/svndata

10.svn 开机自启动

在  /etc/rc.local  加入usr/local/bin/svnserve -d -r 版本库地址

这样开机的时候就能自启动了

查看svnserve查看进程 ps  aux| grep svn

原文来自:http://qing.blog.sina.com.cn/1804711857/6b91b7b1330039m3.html

  评论这张
 
阅读(52)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018