2009-02-01 7 views

risposta

18

Durante la creazione di nuovo repository un esempio di hook post-commit è fornito in hooks/post-commit.tmpl. Esso contiene una linea che sembra più o meno così:

/usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" [email protected] 

basta sostituire l'e-mail con l'indirizzo che si desidera inviare notifiche, rinominare lo script per hooks/post-commit (rimuovere l'estensione tmpl) e renderlo eseguibile (chmod a+x).

Quando si esegue lo script commit-email.pl senza argomenti, verrà visualizzata una schermata di utilizzo con opzioni aggiuntive che consentono ad esempio di modificare la riga dell'oggetto o l'indirizzo Da.

Si noti che è il caso di Debian lo script commit-email.pl si trova in un pacchetto opzionale subversion-tools.

+0

Bene, questo certamente si qualifica come "più semplice". Grazie! –

+0

Buono a sentire ho potuto fare :) –

10

Per questo motivo viene utilizzato svnmailer. Colleghiamo in symlink i nostri script hook specifici per repository post-commit a un singolo script, che a sua volta chiama svnmailer. La configurazione è abbastanza semplice e con la loro configurazione di esempio simple.conf puoi essere installato e funzionante in pochi minuti. Nota che è scritto in Python, quindi questo è un prerequisito per l'installazione.

nostro intero post-commit hook script è solo poche righe (si noti che si potrebbe fare altre cose nel vostro gancio post-commit, ma al momento non sono):

#!/bin/sh 

CONFIG="/usr/local/svnmailer/default.conf" 
MAILER="/usr/bin/svn-mailer" 

# These are passed in by subversion 
REPOS="$1" 
REV="$2" 

"${MAILER}" --commit \ 
      --config "${CONFIG}" \ 
      --repository "${REPOS}" \ 
      --revision "${REV}" \ 
      --background 
+0

Questo sembra fantastico, grazie –

+0

Prego. Mi spiace, era la risposta sbagliata. –

+0

Se potessi averli accettati entrambi, lo avrei fatto. Appena trovo commit-email.pl troppo limitante, sto correndo direttamente su svnmailer. Grazie ancora! –

33

Anche se questa domanda è un po 'vecchio, solo pensato che avrei lasciato il mio parere per chi viene qui da Google:

Ho considerato le soluzioni di cui qui. Il commit-email.pl è stato sia più facile e più efficace per me. Tuttavia, trovo entrambe le soluzioni prive di una formattazione corretta.

Pertanto, il pacchetto svnnotify sembra produrre e-mail formattate e colorate sufficientemente buone per me.

Sui sistemi Debian/Ubuntu è possibile installarlo digitando:

apt-get install libsvn-notify-perl 

Quindi, se si sta andando inviare e-mail agli account Gmail, grazie al supporto CSS strano in Gmail, che vi consiglio vivamente l'applicazione della patch found here, il che significa:

  • Scarica HTML.pm e ColorDiff.pm
  • Sostituire con loro /usr/share/perl5/SVN/Notify/HTML.pm e /usr/share/perl5/SVN/Notify/HTML/ColorDiff.pm, resp cace.

E, infine, impostare il post-commit script di aggancio il solito modo:

# email notifications for commits 
/usr/bin/svnnotify --repos-path "$REPOS" --revision "$REV" \ 
    --to [email protected] \ 
    --from [email protected] \ 
    --with-diff \ 
    --subject-cx \ 
    --subject-prefix 'Your Project Name: ' \ 
    --handler HTML::ColorDiff \ 
    --css-inline 
    2>&1 & 

exit 0 
+1

Io vorrei che il freddo votare This due volte :-) Si ottiene molto bello mail in questo modo, pollici in su! – Brimstedt

+0

+1 per il --css-inline Dovrebbe entrare nel SVN principale del messaggio di posta elettronica –

+0

+1. Le email sono così belle che non vedi l'ora di impegnarti! – dawez

-1

Controllare la svn-mod-mail pacchetto descritto here. L'email mod-svn-mod è un potente strumento per la gestione delle notifiche e-mail SVN fornito come archivio Debian. È facile da installare, configurare e utilizzare.

+0

Il link è morto !! ma non sono sicuro del perché qualcuno abbia votato questa risposta? – hriziya

+0

Il collegamento funziona di nuovo. Grazie per avermi fatto sapere. – Guardian

Problemi correlati