Subversion(SVN)이 체크인 시 이메일을 보내도록 하려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/7913

문제

나는 항상 체크인(커밋) 메일이 코드베이스/저장소에서 다른 사람들이 수행하는 작업을 추적하는 데 매우 유용하다는 것을 알았습니다.커밋마다 배포 목록을 이메일로 보내도록 SVN을 어떻게 설정합니까?

저는 Windows에서 클라이언트를 실행하고 Linux에서는 Apache Subversion 서버를 실행하고 있습니다.하지만 다양한 플랫폼에 대한 아래 답변은 다른 사람들에게 유용할 것입니다.

도움이 되었습니까?

해결책

당신은 커밋 후 후크.여기 가이드.

다음은 커밋할 때마다 이메일을 보내는 샘플 Ruby 스크립트입니다. 커밋-email.rb

다른 팁

독립형을 살펴보세요 전복 알림 도구 (윈도우 전용!)커밋 시 이메일을 보내는 것 외에도 훨씬 더 많은 일을 할 수 있습니다!

당신은 익숙해지고 싶을 것입니다 저장소 후크, 특히 커밋 후 후크.

1) sudo apt-get을 사용하여 svn 서버에 svnnotify를 설치합니다.

2) 저장소의 커밋 후 후크를 사용합니다(svn 웹사이트의 커밋 후 후크를 참조하세요).

3) 커밋 후 후크 파일을 열고 다음 코드를 붙여넣어 smtp 서버를 사용하여 이메일을 보냅니다.sendmail을 구성할 필요가 없으므로 smtp를 사용하는 것은 간단합니다.

4) \(줄 바꿈) 뒤에 추가 공백이 없는지 확인하십시오.

#!/bin/sh

REPOS="$1"
REV="$2"
TO="xyz@yah.com" # who will receive the notifications
FROM="hello@goog.com" # what will be in "FROM" fields


 /usr/bin/svnnotify \

--repos-path "$REPOS" \
--revision "$REV" \
--to $TO \
--from $FROM \
--reply-to $FROM \
--smtp "YOUR.SMTP.MAIL.COM" \
--subject-prefix "[svn commit]" \
--attach-diff -a \
--header 'Message generated on Subversion Check-in.' \
--footer 'OpenSource Team. ' \
--svnlook "/usr/local/bin/svnlook" \
--handler HTML::ColorDiff # make diff pretty

관련 질문이 있습니다 여기 커밋 후 후크에.개인적으로 저는 RSS 피드를 받을 수 있는 곳으로 메시지를 보내는 것을 선호합니다. 커밋당 이메일을 보내면 받은 편지함에 과부하가 걸리기 때문입니다.

보조 @매트 밀러 RSS 피드에.

라는 유용한 도구가 있습니다. WebSVN 전체 커밋 메시지와 함께 모든 저장소 및 개별 분기/태그/폴더의 RSS 피드를 제공합니다.또한 업데이트를 실행하고 선택한 편집기를 열지 않고도 파일 기록과 커밋/차이점을 빠르게 확인할 수 있는 훌륭한 웹 인터페이스이기도 합니다.

다른 사람이 말했듯이 '어떤 플랫폼'인가.Windows에서는 이 작업을 수행하기 위해 공짜 명령줄 SMTP 메일러인 'blat'를 커밋 후 및 다른 배치 파일과 함께 사용했습니다.

포스트 커밋은 다음과 같습니다:(다른 배치 파일을 호출하기만 하면 됩니다)

 call d:\subversion\repos\rts\hooks\mail %1 %2

mail.bat는 다음과 같습니다:

copy d:\subversion\repos\RTS\hooks\Commitmsg.txt %temp%\commit.txt
copy d:\subversion\repos\RTS\hooks\subjbase.txt %temp%\subject.txt
svnlook info -r %2 %1 >> %temp%\commit.txt
echo Revision %2 >> %temp%\commit.txt
svnlook changed -r %2 %1 >> %temp%\commit.txt
svnlook author -r %2 %1 >> %temp%\subject.txt
c:\utils\blat %temp%\commit.txt -t <me@my.email.com> -sf %temp%\subject.txt -server ServerName -f "SVN Admin <svn@my.email.com>" -noh2

SVN 후크 작성 시 가장 큰 문제는 기본적으로 환경 설정이 없을 수도 있다는 것입니다. 즉, exe 경로, 임시 경로 등이 없습니다.최신 SVN 빌드에서는 개선되었을 수도 있습니다.

당신은 사용할 수 있습니다 빌드봇.체크인이 발생할 때마다 임의의 조치를 취할 수 있는 도구입니다.모든 기능을 갖춘 지속적인 통합 시스템이지만 이메일만 원한다면 확실히 처리할 수 있습니다.SVN을 포함한 다양한 SCM을 위한 플러그인이 있습니다.

특정 Subversion 브랜치의 "hooks" 디렉터리에는 시작하는 데 도움이 되는 9개의 템플릿 파일이 있습니다.

핵심:Subversion은 이름이 바뀔 때까지 파일을 실행하지 않습니다.Unix에서 post-commit.tmpl을 실행하려면 이름을 "post-commit"으로 바꾸세요.Windows에서는 이름을 "post-commit.bat" 또는 "post-commit.exe"로 바꿉니다.전복은 ~ 아니다 이름이 "post-commit.tmpl" 또는 "post-commit.sh" 등인 경우 파일을 실행합니다.

또한 Subversion을 실행하는 동일한 사용자가 파일을 실행할 수 있는지 확인하십시오.

나는 이와 비슷한 커밋 후 스크립트를 사용합니다. 하나.

멋진 HTML 이메일을 보냅니다.제거된 코드는 빨간색으로 강조 표시되고 추가된 코드는 파란색으로 강조 표시되는 부분을 업데이트했습니다.

VisualSVN 서버에는 유용한 커밋 이메일 알림 후크가 있습니다. VisualSVNServerHooks.exe.컬러 diff를 지원하며 커밋이 특정 저장소 경로에 영향을 미칠 때만 커밋 알림을 보낼 수 있습니다.

보다 "VisualSVN 서버에서 이메일 알림 구성".

Linux 서버에서 3단계로 수행했습니다.

  1. 메일링 리스트 만들기(svn-notify@xy.com) 목록에 사람을 추가합니다.

  2. 편집하다 /path_to_your_svn/svn/hooks/svn-notify/mailer.conf

    • to_addr = svn-notify@xy.com
    • from_addr = %(author)s@xy.com
    • commit_subject_prefix =[XY-SVN]
  3. 이 줄을 /path_to_your_svn/svn/hooks/post-commit 파일:
    /path_to_your_svn/svn/hooks/svn-notify/mailer.py commit "$REPOS" "$REV" /path_to_your_svn/svn/hooks/svn-notify/mailer.conf

어떤 플랫폼?

Mac OS X에 설치했습니다 msmtp 저장소의 후크 아래에 커밋 후 스크립트를 만들었습니다..msmtprc 파일을 설정해야 합니다. svn (또는 www) 사용자.

REPOS="`echo $1 | sed 's/\/{root of repository}//g'` "
REV="$2"
MSG=`/usr/local/bin/svn log -v -r HEAD https://localhost$REPOS`

/usr/local/bin/msmtp {list of recipients} <<EOF
Subject: SVN-Commit $REPOS#$REV
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit

$MSG
EOF

만들다 {root of repository} 그리고 {list of recipients} 귀하의 필요에 따라 구체적입니다.참고 여기 스웨덴(åäö)에 특수 문자가 있기 때문에 UTF-8을 사용했습니다.

Subversion 소스에는 Perl로 작성된 (큰) 예제가 포함되어 있습니다. 여기에서 본).

또한 SVN메일러, Linux에서 작동합니다.

을 체크 해봐 svn-mod-이메일 설명된 패키지 여기.그만큼 svn-mod-이메일 Debian 아카이브로 제공되는 SVN 이메일 알림 관리를 위한 강력한 도구입니다.설치, 구성 및 사용이 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top