svn的继续学习--hooks

基于上次的linux安装svn环境学习。

1,学习的有linux下客户端svn的学习(我这里虚拟机搭建了3个linux 然后设置了ssh免密登录,并分别设置了他们的固定ip)

       svn co(checkout)|update(更新) svn://装有svn服务端的ip/test/ /svndata(下载路径)/ --username=test --password=test

2,我们一般项目的3个目录trunk(主干)用于上线 branch(支条)分支用于平常开发 tag 标签

3,学习svn的hooks(钩子)linux下的设置

       hooks里面就是一些shell脚本在你提交或者提交。。动作所触发的事件(我是这么理解的)

      hooks目录在app/svndata/test/下面cd进入 “ll”就会看到里面很多模板(对于不会shell脚本的可以百度)

     我是这么学习的(基本语法看了遍能看懂还不会写(*^▽^*))。

     这里有我学习的2个案例一个是pre-commit 提交前必须输入信息、另外一个post-commit提交后自动同步到另外一台 机子环境里,

     1,pre-commit

#!/bin/sh  (头部信息必须填写的)

REPOS="$1"(参数)

TXN="$2"(参数)

SVNLOOK=/usr/bin/svnlook

# check that logmessage contains at least 10 alphanumeric characters

# 后面的意思大概就是你在提交时 -lt 10不能小于10个字符否则失败

LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | tr -d ' ' | wc -c`

if [ "$LOGMSG" -lt 10 ];

then

  echo -e "\nEmpty log message not allowed. Commit aborted!" 1>&2

  exit 1

fi

2,post-commit文件的内容

#!/bin/sh

REPOS="$1"                  # 仓库的路径

REV="$2"                    # 新提交的版本号

LOGFILE=/var/log/svn.log    # 钩子脚本的日志

# 脚本的标准输出和标准错误输出都打印到日志文件里

exec 1>>"$LOGFILE"

exec 2>&1

SVNLOOK=/usr/bin/svnlook

TIME=$(date "+%Y-%m-%d %H:%M:%S")

AUTHOR=$($SVNLOOK author -r $REV "$REPOS")  #提交作者

CHANGEDDIRS=$($SVNLOOK dirs-changed $REPOS) #修改的目录集合

MESSAGE=$($SVNLOOK log -r $REV "$REPOS")    #提交时的备注信息,不建议用中文

# SVN客户端配置,需要自行修改**********************************

CLIENT1=192.168.0.113        #服务器地址

CLIENTSVNROOT=/test/data/www    #WEB服务器的代码根目录

SVNUSER="test"

SVNPASSWD="test"

echo "**************************************************************"

echo "提交版本:$REV 作者:$AUTHOR"

echo "提交备注:$MESSAGE"

echo "修改目录:$(echo $CHANGEDDIRS | tr '\n' ' ')"

# 无密码ssh连接到客户端服务器,执行svn up

/usr/bin/ssh root@$CLIENT1 "export LANG=en_US.UTF-8; svn up --non-interactive --

username $SVNUSER --password $SVNPASSWD '$CLIENTSVNROOT'"

以上是修改完后如果是在win下编写的还需要格式化

(dos2unix post-commit |pre-commit)

chmod 755 post-commit | pre-commit 设置下权限

说明上面我是做了集群在虚拟机(vbox)创建了3个(这里用了2个)你如果没有做用一个测试也可以(多个需要ssh 免密设置)



好了以上就是自己今天的学习,说明以上我是找的视频加度娘(给自己加油看看能坚持一个月不)

你可能感兴趣的:(svn的继续学习--hooks)