vcs/svn

svn hooks를 이용한 release, trunk 자동 업데이트

C/H 2017. 3. 24. 00:11
주의 : 보안 이슈로 hooks 실행은 환경변수를 상속받지 않고 모두 초기화하고 실행된다.

post-commit

#!/bin/sh

REPOS="$1"
REV="$2"

mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

DIR="/home/svn/project_name/hooks"
if svnlook dirs-changed -r "$REV" "$REPOS" | grep -qEe '^trunk/'; then
    ${DIR}/_dev_update.sh $1 $2
else
    ${DIR}/_product_update.sh $1 $2
fi

_dev_update.sh

#!/bin/bash

# svn auto update shell

REPOS="$1"
REV="$2"

if [ -z "$HOME" ]; then
    HOME="/home/username/"
fi

PRJ="project_name"
ENV="dev"
DATE=$(date +"%Y%m%d")
NOW=$(date +"%Y-%m-%d_%H:%M:%S")
LOG="${HOME}/${PRJ}-${ENF}_svn.${DATE}.log"
SERVER="username@hostname.com"
WORKINGPATH="{$HOME}/{$PRJ}"

echo "##### update.sh Begin"
touch $LOG
echo "${NOW} ##### ssh $SERVER svn up $WORKINGPATH" >> $LOG
ssh $SERVER svn up $WORKINGPATH && exit; >> $LOG
echo "##### update.sh Finished"


반응형

'vcs > svn' 카테고리의 다른 글

svn cleanup error  (0) 2017.03.31
svn checkout ignore directory/folder  (0) 2017.03.30
팀 개발을 위한 SVN Branch, Merge 사용  (0) 2016.07.22
SVN Conflict(충돌) Option  (0) 2016.06.10
propset propedit  (0) 2016.01.05