서브버전 SVN에서 이메일 알림을 설정하는 방법은?
_____A1: SVN 서버에서 post-commit 훅 스크립트를 설정해야 합니다. 이 스크립트는 커밋이 완료되면 자동으로 실행되어, 변경 내용을 이메일로 전송합니다.
Q2: post-commit 훅 스크립트는 어디에 있나요?
A2: SVN 리포지토리 디렉토리 내에 `hooks` 폴더가 있으며, 여기서 `post-commit` 샘플 파일(`post-commit.tmpl` 또는 `post-commit.sample`)을 찾을 수 있습니다. 이 파일을 복사하거나 이름을 `post-commit`으로 변경 후 사용합니다.
Q3: 기본 post-commit 이메일 알림 스크립트 예시는 어떻게 되나요?
A3: 아래는 간단한 리눅스 환경용 예시입니다.
```bash
!/bin/sh
REPOS="$1"
REV="$2"
MAIL_TO="[email protected]"
CHANGED=$(svnlook changed -r $REV $REPOS)
AUTHOR=$(svnlook author -r $REV $REPOS)
LOGMSG=$(svnlook log -r $REV $REPOS)
echo "Author: $AUTHOR
Revision: $REV
Changed paths:
$CHANGED
Log Message:
$LOGMSG" | mail -s "SVN Commit r$REV by $AUTHOR" $MAIL_TO
```
Q4: 이메일 보내기 위해 별도의 도구가 필요한가요?
A4: `mail` 명령어가 기본적으로 설치되어 있어야 하며, SMTP 메일 서버가 서버 내에 설정되어 있어야 합니다. 또는 `sendmail`, `ssmtp`, `msmtp` 등 메일 전송 클라이언트를 설치하여 사용할 수 있습니다.
Q5: commit 내용 중 변경 파일 목록이나 diff를 이메일로 보낼 수 있나요?
A5: 네, `svnlook diff -r $REV $REPOS` 명령으로 변경된 파일들의 diff를 구할 수 있습니다. 이를 이메일 본문에 포함하면 상세한 내용 전달이 가능합니다.
Q6: Windows 환경에서 SVN 이메일 알림 설정은 어떻게 하나요?
A6: Windows에서는 `post-commit.bat` 파일을 만들고, `svnlook`과 `blat` 같은 이메일 전송 툴을 함께 사용하여 mail 발송 스크립트를 작성합니다. 또는 TortoiseSVN과 연동되는 별도의 이메일 알림 툴을 사용할 수도 있습니다.
Q7: 규모가 큰 프로젝트에서는 어떻게 설정하나요?
A7: `svnmailer` 같은 전문적인 서브버전 전용 이메일 알림 툴을 사용하는 방법이 있습니다. 이 도구는 복잡한 필터링, HTML 메일, 여러 수신자 관리 등을 지원합니다.
Q8: SVN 서버가 아파치 연동(HTTP)이면 이메일 알림 설정 방법은?
A8: SVN과 아파치 연동 여부와 관계없이 리포지토리 내 `hooks` 폴더의 `post-commit` hook으로 이메일 알림을 설정합니다. 아파치 설정은 별도입니다.
Q9: 이메일 수신자나 내용 필터링은 어떻게 하나요?
A9: post-commit 스크립트 내 로직을 추가하여, 특정 디렉토리 변경 시 특정 수신자에게 보내거나, 특정 메시지를 포함하지 않는 커밋은 무시하는 등의 조건문을 넣을 수 있습니다.
Q10: 설정 후 제대로 작동하지 않을 때 점검할 사항은?
A10:
- `post-commit` 스크립트가 실행 가능 권한(`chmod +x`)을 가지고 있는지
- 경로 및 명령어가 정확한지 (`svnlook`, `mail` 등)
- 메일 서버 설정 및 인증 정보가 올바른지
- 훅 스크립트에서 발생하는 에러 출력 확인 (로그 파일에 에러 기록 권장)
- SVN 서버 사용자가 메일 전송 권한과 환경 변수를 제대로 가지고 있는지
위 점검 후에도 문제 발생 시 자세한 에러 메시지를 확인하여 조치를 진행해야 합니다.
후크 스크립트는 특정 SVN 작업이 발생할 때 자동으로 실행되는 스크립트로, 다양한 작업(커밋, 업데이트 등) 후에 이메일 알림을 보낼 수 있습니다.
아래는 SVN에서 이메일 알림을 설정하는 과정입니다.
1. 후크 스크립트 위치 찾기 SVN 리포지토리의 후크 스크립트는 리포지토리의 `hooks` 디렉토리에 위치합니다.
예를 들어, `/path/to/your/repo/hooks` 경로에 있습니다.
2. 후크 스크립트 수정 커밋 후 이메일 알림을 보내고 싶다면 `post-commit` 후크 스크립트를 수정하면 됩니다.
이 파일은 기본적으로 제공되며, `.tmpl` 확장자로 되어 있을 수 있습니다.
이 파일의 이름을 `post-commit`으로 변경합니다.
이 파일을 수정하여 아래와 같이 이메일 알림을 전송하는 코드를 추가합니다.
```bash !/bin/sh REPO="$1" REV="$2" 메일을 보낼 대상 EMAIL="[email protected]" 메일 제목 SUBJECT="SVN Commit Notification: Revision $REV" 커밋 로그 가져오기 LOG_MESSAGE=$(svnlook log "$REPO" -r "$REV") 이메일 본문 생성 EMAIL_BODY="A new commit has been made to the repository: Revision: $REV Log Message: $LOG_MESSAGE" 이메일 전송 echo "$EMAIL_BODY" | mail -s "$SUBJECT" "$EMAIL" ```
3. 스크립트 권한 설정 후크 스크립트가 실행될 수 있도록 실행 권한을 부여해야 합니다.
터미널에서 다음 명령어를 실행합니다.
```bash chmod +x /path/to/your/repo/hooks/post-commit ```
4. 메일 전송 도구 설치 `mail` 명령어를 사용하여 이메일을 보내는 방법을 사용했지만, 시스템에 `mail` 유틸리티가 설치되어 있어야 합니다.
필요에 따라 `sendmail`, `ssmtp`, `postfix` 등 다른 메일 전송 도구를 사용할 수 있습니다.
5. 테스트 배포가 완료되면 SVN 리포지토리에 커밋을 진행하여 이메일이 정상적으로 전송되는지 확인합니다.
추가 고려 사항 - 보안 : 후크 스크립트 내에 민감한 정보를 포함하지 않도록 주의하세요.
- 스팸 : 과도한 이메일 전송을 방지하기 위해 알림 설정을 적절히 관리하세요.
- 로깅 : 문제 해결을 위해 후크 스크립트 내에서 로깅 기능을 추가하는 것이 좋습니다.
위의 단계를 따르면 SVN에서 커밋 후 이메일 알림을 성공적으로 설정할 수 있습니다.
작성자:
김현서 [비회원]
| 작성일자: 1년 전
2025-03-21 15:51:05
조회수: 178 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 178 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.