Jak sprawić, by Subversion (SVN) wysyłał e-mail na checkins?
Zawsze uważałem checkIn (commit) maile za bardzo przydatne do śledzenia pracy innych ludzi w bazie kodu / repozytorium. Jak skonfigurować SVN do wysyłania listy dystrybucyjnej przy każdym zatwierdzeniu?
Uruchamiam klientów na Windows i serwer Apache Subversion na Linuksie. Poniższe odpowiedzi dla różnych platform będą prawdopodobnie przydatne dla innych osób.
16 answers
Używasz post-commit hooków . Oto Przewodnik .
Oto przykładowy skrypt Ruby, który wysyła wiadomość e-mail po każdym zatwierdzeniu: commit-email.rb
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-17 15:35:56
Spójrz na samodzielne Subversion Notify Narzędzie (Tylko Windows!) Może to zrobić e-mail na commit, a także wiele więcej!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-17 15:36:55
Będziesz chciał zapoznać się z hookami repozytorium , szczególnie z Hookiem post-commit .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-17 15:42:16
1) Zainstaluj svnnotify na serwerze svn używając sudo apt-get
2) Użyj Post-commit Hooka swojego repo (czytaj na post-commit hooks na stronie svn)
3) Otwórz plik Hooka po zatwierdzeniu i wklej następujący kod, aby wysłać wiadomość e-mail za pomocą serwera smtp. Korzystanie z smtp jest proste, ponieważ nie musisz konfigurować sendmaila.
4) Upewnij się, że po \ (podział linii) nie masz dodatkowej spacji.
#!/bin/sh
REPOS="$1"
REV="$2"
TO="[email protected]" # who will receive the notifications
FROM="[email protected]" # 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-13 22:04:50
Jest powiązane pytanie tutaj na temat hooków po zatwierdzeniu. Osobiście wolę wysłać wiadomość do czegoś, z czego mogę uzyskać kanał RSS, ponieważ e-mail-per-commit dość szybko przeciążyłby moją skrzynkę odbiorczą.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:48
Seconding @ Matt Miller on RSS feeds.
Istnieje przydatne narzędzie o nazwie WebSVN , które oferuje kanały RSS każdego repozytorium i poszczególnych gałęzi/tagów/folderów z pełnymi komunikatami commit. Jest to również świetny interfejs internetowy do szybkiego przeglądania historii plików i zatwierdzeń/różnic bez konieczności uruchamiania aktualizacji i otwierania wybranego edytora.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:28
Jak ktoś inny powiedział, "jaka Platforma". W systemie Windows użyłem 'blat', który jest darmowym mailerem SMTP z linii poleceń, wraz z post-commit i innym plikiem wsadowym.
Commit post wygląda tak: (wywołuje inny plik wsadowy)
call d:\subversion\repos\rts\hooks\mail %1 %2
I pocztą.nietoperz wyglądał tak:
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 <[email protected]> -sf %temp%\subject.txt -server ServerName -f "SVN Admin <[email protected]>" -noh2
Największą zaletą pisania hooków SVN jest to, że możesz w zasadzie nie mieć żadnej konfiguracji środowiska-żadnej ścieżki exe, żadnej ścieżki temp itp. Choć może to się poprawiło w bardziej Ostatnie Kompilacje SVN.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-11 22:31:32
Możesz użyć buildbot . Jest to narzędzie, które może podjąć dowolne działania za każdym razem, gdy nastąpi odprawa. Jest to w pełni funkcjonalny system ciągłej integracji, ale jeśli chcesz tylko wiadomości e-mail, z pewnością sobie z tym poradzi. Posiada wtyczki do różnych SCM, w tym SVN.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 04:59:25
W katalogu "hooks" Twojej konkretnej gałęzi subversion znajduje się 9 plików szablonów na początek.
Punkt kluczowy: subversion nie uruchomi żadnego z plików, dopóki nie zmieni ich nazwy. Aby uzyskać Post-commit.tmpl aby uruchomić pod Uniksem, zmień jego nazwę na "post-commit". W systemie Windows zmień jego nazwę na " post-commit.bat " lub " post-commit.exe". Subversion wykona , a nie, jeśli zostanie nazwany " Post-commit.tmpl "lub" post-commit.sh " lub tym podobne.
Również upewnij się, że plik jest wykonywalny przez tego samego użytkownika, który uruchamia subversion.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-17 20:26:34
Używam skryptu post-commit podobnego do tego One .
Wysyła ładny email HTML. Zaktualizowałem go trochę, gdzie podświetla kod, który został usunięty na czerwono i podświetla kod, który został dodany na niebiesko.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-09 11:20:13
Serwer VisualSVN posiada przydatne powiadomienie e-mail o zatwierdzeniu VisualSVNServerHooks.exe
. Obsługuje kolorowe dyfuzory i może wysyłać powiadomienia o zatwierdzeniu tylko wtedy, gdy zatwierdzenie wpływa na określoną ścieżkę repozytorium.
Zobacz "Konfigurowanie powiadomień e-mail na serwerze VisualSVN".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-09 11:26:59
Zrobiłem to na serwerze Linux w 3 krokach:
Utwórz listę mailingową (
[email protected]
) i dodaj osoby do listy.-
Edit
/path_to_your_svn/svn/hooks/svn-notify/mailer.conf
- to_addr = [email protected]
- from_addr = %(autor)[email protected]
- commit_subject_prefix =[XY-SVN]
- Dodaj ten wiersz do pliku {[2] }:
/path_to_your_svn/svn/hooks/svn-notify/mailer.py commit "$REPOS" "$REV" /path_to_your_svn/svn/hooks/svn-notify/mailer.conf
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-30 10:04:47
Jaka Platforma?
Na Mac OS X zainstalowałem msmtp i utworzyłem skrypt Post-commit pod hookami w repozytorium. A .plik msmtprc musi być ustawiony dla użytkownika svn
(lub 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
Make {root of repository}
i {list of recipients}
specific for your needs. Uwaga użyłem UTF-8, ponieważ mamy tutaj kilka znaków specjalnych w Szwecji (åäö).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-17 15:35:48
Istnieje (duży) przykład napisany w Perlu zawarty w źródle Subversion (można go zobaczyć tutaj).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-11 16:39:47
Również SVNMailer, który działa na Linuksie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-27 03:26:04
Sprawdź svn-mod-email Pakiet opisany tutaj. svn-mod-email jest potężnym narzędziem do zarządzania powiadomieniami e-mail SVN, które jest dostarczane jako archiwum Debiana. Jest łatwy w instalacji, konfiguracji i obsłudze.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-19 06:01:11