Centos5.8下搭建svn
来源:互联网 发布:工业设计常用建模软件 编辑:程序博客网 时间:2024/04/30 09:36
一、安装svn(subversion)
1.更新源
# yum -y update
2.检查svn软件是否安装
# rpm -aq subversion
3.如果没安装,则执行下面命令安装
# yum -y install subversion
二、配置并启动svn
1.建立svn版本数据存储根目录(svndata)及用户、密码权限目录(svnpasswd)
# mkdir -p /appliction/svndata
# mkdir -p /appliction/svnpasswd
2.启动svn服务指定服务的svn根目录
# svnserve -d -r /appliction/svndata/
# svnserve -d -r /appliction/svndata/ --pid-file=/appliction/svndata/svn.pid
3.查看svn进程
# ps -ef|grep svn
# ps -ef|grep svn|grep -v grep
4.检测svn端口
# lsof -i :3690
# lsof -i tcp:3690
# netstat -lnt|grep 3690
三、建立项目版本库
1.创立一个新的 Subversion 项目 sadoc
# svnadmin create /appliction/svndata/sadoc
# ls -ld /appliction/sadoc
提示:查看svnadmin 命令帮助的方法
# svnadmin help
# svnadmin help create
查看目录树
# tree /appliction/svndata/
2.调整 svn 配置文件及权限文件
# cd /appliction/svndata/sadoc/conf/
# cp svnserve.conf svnserve.conf.bacpup
# cp svnserve.conf svnserve.conf.$(date +%F)
# vi svnserve.conf
修改为下面参数
auth-access = write
password-db = /appliction/svnpasswd/passwd
authz-db = /appliction/svnpasswd/authz
3.对比源文件查看改了哪些东西
# diff svnserve.conf.bacpup svnserve.conf
4.检查
# egrep "\-access|\-db =" svnserve.conf
四、添加svn用户
1.拷贝模板文件
# cp passwd authz /appliction/svnpasswd/
2.查看文件复制过去没有
# ll /appliction/svnpasswd/
3.添加用户(这里添加了3个)
# cd /appliction/svnpasswd/
# vi passwd
注意:前面是账号,后面是密码
[users]
admin1 = admin123
admin2 = admin123
admin3 = admin123
提示:更改svnserve.conf时,需要重启svn,更改 passwd authz不需要重启
4.用户组的配置
# vi authz
5.配置版本库权限 ( sadoc库 )
新建群组用户名为sagroup ,该有2个用户
设置群组权限前面加 @
[groups]
sagroup = admin1 ,admin2
[sadoc:/]
admin3 = rw
@sagroup = r
五、重启svn命令
命令1
# pkill svnserve# svnserve -d -r /appliction/svndata
命令2
# kill -USER1 `cat /appliction/svndata/svn.pid`# svnserve -d -r /appliction/svndata/ --pid-file=/appliction/svndata/svn.pid
六、SVN钩子
钩子脚本是被版本库事件触发的程序,例如新修订版本的创建或未版本控制属性的修改。每一种钩子都会被告知事件的足够信息,操作的目标,触发事件的用户名。依赖于钩子的输出或返回状态,钩子程序可以继续执行,停止或以某种方式挂起。
1.钩子说明
2.钩子应用场景
3.钩子生产实例
post-commit 代码同步
#!/bin/shREPOS="$1"REV="$2"export LC_CTYPE="en_US.UTF-8"export LC_ALL=LOGPATH="/app/log"[ ! -d ${LOGPATH} ] && mkdir ${LOGPATH} -p#update content from svnSVN=/usr/bin/svn$SVN update --username xx --password oo /home/testif [ $? -eq 0 ]then/usr/bin/rsync -az --delete /home/test /tmp/fi
shell
# export LC_CTYPE="en_US.UTF-8"# export LC_ALL=# chmod 700 post-comit
pre-comit 限制上传文件扩展名及大小(扩展和大小不可用)
#!/bin/shREPOS="$1"TXN="$2"#此处更改大小限制,这里是5MMAX_SIZE=5242880#此处增加限制文件后缀名FILTER='\.(zip|rar|o|obj|tar|gz)$'SVNLOOK=/usr/bin/svnlook#LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | wc -c`if [ "$LOGMSG" -lt 9 ];then echo -e "nLog message cann't be empty!you must input more than 8 chanrs as comment!." 1>&2exit 1fifiles=$($SVNLOOK changed -t $TXN $REPOS |cut -d " " -f 4-)#echo "files">&2#echo "$r">&2#exit 1rc=0echo "files"|while read f;do#check file typeif echo $f|tr A-Z a-z|grep -Eq $FILTER;then echo "File $f is not allow ($FILTER) file" >&2 exit 1;fi#check file sizefilesize=`$SVNLOOK cat -t "$TXN" "$REPOS" "$f" | wc -c`if [ "$filesize" -gt "$MAX_SIZE" ];then echo "File $f is too large(must <=$MAX_SIZE)B" >&2 exit 1fidone#ALL checks passed,so allow the commitif [ $? -eq 1 ];thenexit 1elseexit 0fi
- Centos5.8下搭建svn
- CentOS5.8 下配置SVN Serve
- centos5.5搭建svn服务器
- linux(CentOS5.8)环境下搭建Radius
- liunx centos5.8 下配置apache+svn的http访问
- CentOS5.5下搭建nagios
- CentOS5 搭建并配置SVN服务器(X86)
- 新手玩阿里云ECS搭建CentOS5.8搭建svn服务器支持https访问方式
- centos5下安装svn,cannot find -lexpat
- 在CentOS5.4下安装SVN
- centOs5.10 下安装svn服务器
- CentOS5.6下gitweb的安装搭建
- centos5 下搭建 网页截图 功能
- CentOS5下apache+php环境搭建
- centos5.5下android开发环境搭建
- CENTOS5.5下使用Roundcube搭建 Webmail
- centos5 下 lida 调试环境搭建
- centos5.5下的nginx搭建
- setfacl权限
- leetcode 36 Valid Sudoku C++
- setserial 命令使用
- android TV盒子开发心得(一)
- iframe页面滚动条置顶
- Centos5.8下搭建svn
- hdu 2059 龟兔赛跑 水题
- 欢迎使用CSDN-markdown编辑器
- ipsec vpn iso-vyos
- 中间件漏洞检测框架(F-MiddlewareScan)屌丝归档笔记
- Java(JVM)内存模型,垃圾回收
- mongodb权限设置之添加管理员、普通用户的方法
- Linux环境搭建xampp+禅道
- Java 动态代理详解(JDK 和CGLIB,Javassist,ASM)