티스토리 툴바


SoftWare/Utility2009/08/19 18:05
한국백혈병어린이재단
설치는 마쳤으나 뭔가 기본 옵션들로 설치되어있는 것이 찜찜하다.
그래서 성능과 편의를 위한 몇가지 튜닝을 찾아보았다.

1. Hook Script 사용
Subversion에는 Commit,Lock, Revision Change에 대한 Hook Script를 지원한다.
원래 Unix base에서야 Perl로 하면 되지만
편하려고 VisualSVN을 설치했는데 Windows용 Perl을 설치하고 Perl Sript들을 수정해가며 개고생하는 것은 원치 않는다.

해당 Repository의 속성을 열면 보안탭 옆에 Hooks 탭이 존재한다.
Script아니 VisualSVN에서는 .cmd 확장자를 가진 Batch파일이 존재하면 해당 Hook이 진하게 표시된다.
존재하지 않는 hook이어도 목록을 더블클릭하면 작성할 수 있는 창이 실행된다.


- Commit Log 입력 강요하기.


상기 설정된 Hook은 Commit하기 전에 로그를 입력하지 않으면 에러를 출력하고 Commit을 하지 않는 스크립트이다.
findstr 다음의 . 점의 갯수가 최소 요구되는 글자의 수다.
C:\Repositories\R4Z_CreateTest\hooks\pre-commit.cmd 파일 내용

@echo off 
 :: Stops commits that have empty log messages.       
 @echo off 

 setlocal 

 rem Subversion sends through the path to the repository and transaction id 
 set REPOS=%1 
 set TXN=%2          

"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log %REPOS% -t %TXN% | findstr . > nul 
 if %errorlevel% gtr 0 (goto err) else exit 0 

 :err 
 echo. 1>&2 
 echo 코멘트를 입력하지 않았습니다. 1>&2 
 echo 변경내역에 대한 설명을 작성하고 다시 시도하십시오. 1>&2
 echo 감사합니다. 1>&2
 exit 1

post-commit hook에서 메일로 commit 사항을 보낼 수 있는 것은 좀 더 연구해보고 덧대어 써야겠다.


2. TortoiseSVN의 옵션 설정

- 컨텍스트 메뉴 제외
TortoiseSVN이 컨텍스트 메뉴를 통해서 나오게 되지만 관계없는 폴더등에서도 TortoiseSVN 메뉴가 뜨는건 필요가 없다.
아래 그림과 같이 제외시키고 싶은 폴더와 하위폴더 전체까지 제외하려면 \* 를 붙여준다.

- 아이콘 오버레이 설정.
무시되는 파일, 버전관리 대상이 아닌 파일에는 아이콘 표시를 막아서 혼동을 피한다.
아이콘 표시를 위해 전체 경로를 검사하므로 제외경로에 전체를 두고 작업 공간만 포함경로에 서술한다.

- 로그 캐싱 설정
Subversion Server의 로그가 아닌 클라이언트내에서의 로그를 관리하는 것이다. 로그는 직접 작성하고 캐싱은 OFF 해준다.

- 폴더 탐색
버전관리 대상이 아닌 폴더도 재귀적으로 탐색할 필요가 없다. OFF 한다.


사용하면서 또 새로운 내용을 알게 되면 덧댈 예정..




Posted by 몫 kadin