티스토리 뷰

테스팅 웹서버에 SVN을 활용하려 함께 설치하여 활용해보려는데
2번 작업을 해야만 하는 문제가 있었다.

개발자가 svn 에 commit 하고
테스트페이지를 웹브라우저 통해 열면
자동 update 되지 않기에 기존 내용 그대로였다.

하여 시행했던 방법은
로컬 work 디렉토리의 소스를 고치고
FTP로 올리고 곧바로 SVN Commit 하는 순이었는데
상당히 맘에 들지 않았다.

SVN 저장소는 고유의 형태로 SVN서버에 저장되고
Update 받지 않으면 웹서버의 소스 디렉토리는 갱신되지 않는다.

이 Update 과정이 누군가 Commit 할때
바로 update 된다면 자동화가 될 터.

구글링에 착수하고 몇가지를 보았으나
별 거지같은 오류만 맛보고
오류에 대한 구글링을 해 보았으나
별 뾰족한 해결책은 얻지 못하였다.

그 과정에서 얻은
svn.exe 의 help 보는법으로
오류메시지들을 격파하였다.

Win+R > cmd
# VisualSVN Server\bin\svn.exe --help update

commit 하면 로컬 웹서버 경로 update 해주는 설정법

1. VisualSVN 관리자에서 Repository(저장소)를 생성

2. 자동업데이트를 위한 계정 생성

3. 저장소에서 마우스오른쪽을 누른 뒤 위 스샷과 같이 Manage Security 선택

4. 2. 에서 만들었던 자동업데이트 계정을 Add 하고 Read/Write 권한 부여

5. 탐색기(Win+E)에서 웹서버 경로를 SVN 저장소 Checkout 경로로 설정 후 보안 설정.
    (이미 웹서버 경로이면서 동시에 SVN workout 경로이면 보안 설정만)

6. 위 스샷에서 보여지는것과 같이 Network Service 에 수정 권한 부여.
    (VisualSVN 사용 계정 = Network Service)

7. VisualSVN 관리자로 돌아가서 저장소 마우스 오른쪽 후 Manage Hooks 선택

8. 이후 뜨는 창에서 Post-commit hook 더블클릭 또는 아래 Edit 버튼 클릭

9. 아래와 같이 .bat 커맨드 입력

SVN과 웹 동일 서버 상에서
Repositery경로/hooks/post-commit.cmd 를 텍스트 편집기로 아래와 같이 수정 후 저장.

@echo off

SET WORKING_COPY="C:\inetpub\wwwroot\test"

"VisualSVN Server 경로\bin\svn.exe" update %WORKING_COPY% --username webUpdater --password 암호 --non-interactive --trust-server-cert

REM --trust-server-cert 옵션은 https 인증 오류시 붙임. 인증서 설치된 서버는 생략.

WORKING_COPY 경로는 (개발) 웹사이트 루트인데
저 경로에서 최초 SVN import 후 checkout 해 놓은 후
위 post-commit hook 내용과같이 svn update 하면

클라이언트에서 svn commit 을 수행하면
svn repositery 에 전달되고
수정본이 WORKING_COPY 경로에 반영되어
수정된 웹페이지를 곧바로 볼 수 있다.
(FTP 접속하여 수정한 파일을 덮어쓴 효과)


10. OK 버튼 누르면 완료.


만약 commit 후 cleanup 하라는 오류 뜨면
9. 사례2. 의 update 커맨드 위에

"VisualSVN Server 경로\bin\svn.exe" cleanup  %WORKING_COPY% --username webUpdater --password 암호 --non-interactive --trust-server-cert

추가.



댓글