subversion ignore 설정 방법

koku_ma의 이미지

subversion 서버를 설치 후

svnadmin create --fs-type bdb testsvn

이렇게 repository에 testsvn 을 만들고 여기에 *.jpg *.gif 파일들을 못 올리게 하려고 합니다.

클라이언트에서 설정하는 것 말고 서버에서 설정하는 방법을 좀 알려주세요.

feanor의 이미지

Subversion의 pre-commit hook을 사용하시면 됩니다. Subversion 책을 참고하세요.

testsvn 디렉토리 안을 보면 hooks 디렉토리가 있는데, 그 안에 pre-commit 이란 파일을 만들고 실행 권한을 줍니다. 펄로 간단하게 짜 봤습니다.

#!/usr/bin/perl
 
$repo = $ARGV[0];
$txn = $ARGV[1];
 
open(CHANGE, "/usr/bin/svnlook changed -t $txn $repo |");
while (<CHANGE>) {
  ($op, $f) = split /\s+/;
  next unless $op == 'A';
  if ($f =~ /\.(gif|jpg)$/) {
    print STDERR "Do not commit image file: $f";
    exit 1;
  }
}