2009년 04월 16일
svn post-commit을 이용한 commit 후 배포
hooks 디렉토리에 post-commit.tmpl 을 post-commit 으로 cp 한후
아래 내용을 추가 한다.
REPOS="$1" #/home/svn/레파지토리명
REV="$2" # 리비젼 번호
/gsp/dev_auto_commit.sh ${REPOS} ${REV}
auto_commit.sh
#!/bin/sh
# Auto exporting when a commit command complete succefuly
# Hooking script post-commit invoke this script
if [ $# != 2 ]; then
echo "Usage: $0 <Repository> <Revision>"
exit 1
fi
REPOS="$1"
REV="$2"
WEB_DIR="/gsp/"
GUID="root:root"
RESULT_TMP=$(svnlook changed -r ${REV} ${REPOS} | awk '{print $1$2}')
echo $RESULT_TMP >> /tmp/tmp_file
if [ -z $RESULT_TMP ]; then
exit 1
fi
for RESULT in $RESULT_TMP
do
COMMIT_STATUS=$(echo ${RESULT:0:1})
if [ -z $COMMIT_STATUS ]; then
exit 1+
fi
case "$COMMIT_STATUS" in
[UADRG])
COMMIT_FILENAME=$(echo ${RESULT:1})
PATH_FILTER=$(echo "$RESULT"|awk -F / '{for (i=2;i<NF;i=i+1){ print "/"$i } }')
PATH_FILTER2=$(echo $PATH_FILTER|sed 's/ //g')
#COMMIT_FILENAME=$WEB_DIR$PATH_FILTER2
COMMIT_FILENAME_NO_TRUNK=$(echo ${RESULT:7})
EXPORT_RESULT=$(svn update -r ${REV} "${WEB_DIR}${COMMIT_FILENAME_NO_TRUNK}")
chown "$GUID" -R "${WEB_DIR}${COMMIT_FILENAME_NO_TRUNK}";;
esac
done
exit 0
# by | 2009/04/16 15:33 | 트랙백



