dev-os

[Linux] svn commit 시 자동 배포(checkout or update)하기

검은바람 2013. 6. 26. 12:04
반응형

#수정파일
svnadmin로 만든 폴더에 hooks라는 폴더가있는데
그안에 post-commit.tmpl 라는 파일을 편집한다. commit할때 작동하는 스크립트당.
일단 파일명을 없앤다.
/home/svn/shop/hooks/post-commit.tmpl

mv post-commit.tmpl post-commit

chmod 777 post-comimt

수정하고 파일을 열고 아래처럼 수정
그래도 쓰면 안됨. 경로가 다 저마다 틀리니까 알아서 수정하세요.

#이건 잘 모르겠음. 기본으로 써있었던거;;
REPOS="$1"
REV="$2"

#일단 소스파일과 svn경로를 변수로 선언. 그래야 편함;;
SOURCE_PATH="/usr/local/apache/htdocs/shop"
SVN_PATH="/home/svn/shop"

#일본어로된  파일도 업로드 가능하게 설정
LANG=ja_JP.UTF-8;
export LANG;

#이건 원래 주석 처리 아니지만. 안쓰니까 주석처리!! 기본으로 써있던것;
#commit-email.pl "$REPOS" "$REV" commit-watchers@example.org
#log-commit.py --repository "$REPOS" --revision "$REV"


#svn update
#소스폴더가 존재하는지 체크
if [ -e $SOURCE_PATH ];
then
#존재하면 기존 소스에 업데이트 시키고, 로그기록 남김.
  svn revert $SOURCE_PATH/*
  svn update $SOURCE_PATH >> $SVN_PATH/log
else
#만약 없다면 서버상에 폴더를 만들고 체크아웃 시켜서 만들어줌 그리고 로그기록
  mkdir -p $SOURCE_PATH >> $SVN_PATH/log
  svn checkout file:///$SVN_PATH $SOURCE_PATH >> $SVN_PATH/log
fi

반응형