在SVN post-commit

时间:2016-11-18 18:32:25

标签: bash email svn post-commit-hook

当我将特定文件提交到SVN存储库时,我正在尝试向我们的测试团队成员发送电子邮件。我已经使用post-commit使用sendmail钩子正常工作了所有正确的内容,但问题是运行sendmail命令需要很长时间,团队成员会抱怨。我已经向To​​rtoiseSVN控制台发送了一条消息,让用户知道发生了什么,但是在发送邮件之后才会出现,这使得消息基本没用。

我有两个问题:

  1. sendmail运行之前,我可以以某种方式让我的钩子输出此消息吗? echo命令在sendmail之前,但似乎没有做多少
  2. 我可以强制sendmail命令在后台运行吗?
  3. 这是脚本:

    REPOS="$1"
    REV="$2"
    TXN_NAME="$3"
    
    # Make sure that the log message contains some text.
    SVNLOOK=/opt/bitnami/subversion/bin/svnlook
    SENDMAIL=/usr/sbin/sendmail
    
    AUTHOR=$($SVNLOOK author -r "$REV" "$REPOS")
    FOUND=$($SVNLOOK changed -r "$REV" "$REPOS" | grep -Pc '[U]\s+.+(file.txt)$')
    
    MAILLOCATION=/home/bitnami/svn/test
    
    MAILMESSAGE="To: tester@mycorp.com\nFrom: subversion@mycorpdev\nSubject: File was modified\n\n$AUTHOR modified the file"
    
    if [ $FOUND -eq 1 ]; then
      echo "You've modified the file, yada yada yada" >&2
      echo "Note: Your commit did not fail, even though the text says it did." >&2
    
    
      $SENDMAIL -t < $MAILLOCATION &
    
    
    
      exit 1
    fi
    
    exit 0
    

    我尝试使用eval $($SENDMAIL -t < $MAILLOCATION) &和其他一些内容作为sendmail命令,但没有任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以尝试:

library(dplyr)

dat %>% group_by(groupid) %>% 
   filter(percent_rank(score)>=0.9) %>% 
   summarise(mean_top10pct=mean(score))

取自here