리눅스

SVN, Commit Log 변경

NUL 2010. 2. 19. 18:30

여러개의프로젝트를 동시에 작업하다보면 Commit 로그를 잘못 입력할때가 있다.

보통 A 프로젝트의 커밋로그를 B 프로젝트에 올린다든지 하는...

기본적으로  SVN의 로그 기록을 바꿀수 없게 되어 있으므로, 이 로그 변경을 위해서는 다음과 같은 작업을 해야 한다.


1. [SVN 저장소 경로]/hooks/pre-revprop-change.tmpl의 파일 이름을 pre-revprop-change 로 변경

2. 실행 가능하도록 권한 변경


아래는 기존의 모든 프로젝트들에 대해 위의 작업을 수행하는 스크립트이다

#!/bin/bash
# SVN pre-revprop-change

cd SVN경로

for repo in *;do
    if [[ -d $repo ]]
    then
          echo Directory : $repo
          if [[ -r $repo/hooks/pre-revprop-change.tmpl ]]
          then 
                mv "$repo/hooks/pre-revprop-change.tmpl" "$repo/hooks/pre-revprop-change"
                echo ............Rename pre-revprop-change
          fi
          if [[ -r $repo/hooks/pre-revprop-change ]]
          then 
                chmod 744 "$repo/hooks/pre-revprop-change"
                echo ........... Change Permission pre-revprop-change
          fi
     fi
done


아래는 SVN 저장소를 생성하고 pre-revprop-change 훅을 세팅하는 스크립트이다.

이미 존재하는 저장소를 입력했다면 그냥 빠져 나온다.

#!/bin/bash

# Create SVN Repo

cd SVN경로

echo 저장소 이름을 입력하세요

read repo

if [[ -d $repo ]]
then
      echo $repo 는 이미 존재하는 저장소입니다.
else
      svnadmin create $repo
      echo ...... $repo 저장소를 생성했습니다.
      mv "$repo/hooks/pre-revprop-change.tmpl" "$repo/hooks/pre-revprop-change"
      chmod 744 "$repo/hooks/pre-revprop-change"
      echo ...... $repo 저장소의 pre-revrepo-change 훅을 생성했습니다.
fi