2009-07-28 67 views
0

我已成功實施提交後掛接的提交後電子郵件通知。現在我正在考慮一個更大的問題,我不希望掛鉤爲每次提交發送電子郵件。有沒有辦法使用hook來將電子郵件的內容寫入文本文件,並可能使用其他鉤子或其他東西來發送文本文件?如何在SVN中添加多個提交到一個Post-Commit HOOK?

我基本上都會發送一封包含多個提交信息的電子郵件。

謝謝, Oded。

回答

3

首先,你必須決定你真正要發送的電子郵件:

  1. 每10個承諾?
  2. 在午夜?
  3. 標記時?

那麼你應該能夠輕鬆地實施方案的工作,因爲你需要它:在

  1. post-commit鉤子:只發送電子郵件時revision number % 10 == 0
  2. 創建cron作業
  3. 在post-commit鉤子:創建一個標籤,當檢測

您可以使用svn logsvn diff-r FROM:TO選項按日期或版本號收集所需信息。有關更多信息,請參閱the svnbook

+0

我想發送的電子郵件需要包含所有提交的所有信息...不是第5或第10個.... – Oded 2009-07-28 06:45:39

1

你可以修改後提交郵件發送者的腳本作了一次提交後發送電子郵件(如版本號爲5的倍數)

幫忙寫腳本,你可以使用svnlook的獲取先前修訂日誌。

下面是一個Python腳本的一部分,我寫信給發送短信到開發商:

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

import sys, urllib, os 
from subprocess import * 

repo = sys.argv[2] 
rev = sys.argv[3] 

cmdlog = 'svnlook log -r %s %s'%(rev, repo) 
cmdauthor = 'svnlook author -r %s %s'%(rev, repo) 
log = Popen(cmdlog, stdout=PIPE, shell=True).stdout.read().strip() 
author = Popen(cmdauthor, stdout=PIPE, shell=True).stdout.read().strip() 

與後提交文件

#!/bin/bash 

export LANG=en_US.utf8 
REPOS="$1" 
REV="$2" 

./sms.py commit $REPOS $REV 

你可以參照這個例子來從日誌信息svn倉庫的命令svnlook

相關問題