SVN commit 하면 로컬 웹서버 경로 update 해주는 설정법
SVN 저장소는 고유의 형태로 SVN서버에 저장되고 Update 받지 않으면 웹서버의 소스 디렉토리는 갱신되지 않는다.
VisualSVN 안에 post-commit hook 기능을 활용해서 자동으로 웹 서버에도 반영 되도록 하는 방법을 살펴 보겠다.
1. VisualSVN Server을 실행
2. VisualSVN 관리자에서 Repository(저장소)를 생성
3. 자동업데이트를 위한 계정 생성
(webUpdater svn 사용자 계정 add)
4. 저장소에서 마우스오른쪽을 누른 뒤 위 스샷과 같이 Manage Security 선택
5. (2)에서 만들었던 자동업데이트 계정을 Add 하고 Read/Write 권한 부여
6. 탐색기(Win+E)에서 웹서버 경로를 SVN 저장소 Checkout 경로로 설정 후 보안 설정.
(이미 웹서버 경로이면서 동시에 SVN workout 경로이면 보안 설정만 하면 된다.)
웹 서버 루트에 레파지토리의 저장소를 체크아웃을 받음
ex)
1 | svn checkout http://localhost:8443/svn/test/ C:\inetpub\wwwroot\test |
7. 위 스샷에서 보여지는것과 같이 Network Service 에 수정 권한 부여
(VisualSVN 사용 계정 = Network Service)
웹 루트 디렉토리에 아래 보안 설정 NETWORK SERVICE 추가
공유 및 보안 > 보안 > 수정 > 추가 > 고급 > 지금 찾기 > NETWORK SERVICE 선택 추가
수정 권한 필시 체크
8. VisualSVN 관리자로 돌아가서 저장소 마우스 오른쪽 후 Manage Hooks 선택
9. 이후 뜨는 창에서 Post-commit hook 더블클릭 또는 아래 Edit 버튼 클릭
10. 아래와 같이 .bat 커맨드 입력
SVN과 웹 동일 서버 상에서 Repositery경로/hooks/post-commit.cmd 를 텍스트 편집기로 아래와 같이 수정 후 저장.
1 | @echo off |
WORKING_COPY 경로는 (개발) 웹사이트 루트인데 저 경로에서 최초 SVN import 후 checkout 해 놓은 후 위 post-commit hook 내용과같이 svn update 하면 클라이언트에서 svn commit 을 수행하면 svn repositery 에 전달되고 수정본이 WORKING_COPY 경로에 반영되어 수정된 웹페이지를 곧바로 볼 수 있다. (FTP 접속하여 수정한 파일을 덮어쓴 효과)
11. OK 버튼 누르면 완료
만약 commit 후 cleanup 하라는 오류 뜨면 (10)에서 update 커맨드 위에
1 | "VisualSVN Server 경로\bin\svn.exe" cleanup %WORKING_COPY% --username webUpdater --password 암호 --non-interactive --trust-server-cert |