如何将SVN中的多个提交添加到一个Post-Commit钩子中?

如何将SVN中的多个提交添加到一个Post-Commit钩子中?,svn,email,notifications,post-commit,Svn,Email,Notifications,Post Commit,我已经成功地为post-commit钩子实现了post-commit电子邮件通知。现在我看到了一个更大的问题,我不希望钩子每次提交都发送电子邮件。有没有一种方法可以使用钩子将电子邮件内容写入文本文件,或者使用另一个钩子或其他东西发送文本文件 我基本上希望发送一封包含多个提交信息的电子邮件 谢谢, Oded.首先,您必须决定何时发送电子邮件: 每十年一次 午夜 什么时候标记 然后,您应该能够轻松地实施一个方案,并根据需要执行该方案: 在提交后挂钩中:仅当修订号%10==0时发送电子邮件 创建cro

我已经成功地为post-commit钩子实现了post-commit电子邮件通知。现在我看到了一个更大的问题,我不希望钩子每次提交都发送电子邮件。有没有一种方法可以使用钩子将电子邮件内容写入文本文件,或者使用另一个钩子或其他东西发送文本文件

我基本上希望发送一封包含多个提交信息的电子邮件

谢谢, Oded.

首先,您必须决定何时发送电子邮件:

  • 每十年一次
  • 午夜
  • 什么时候标记
  • 然后,您应该能够轻松地实施一个方案,并根据需要执行该方案:

  • 在提交后挂钩中:仅当
    修订号%10==0时发送电子邮件
  • 创建cron作业
  • 在post-commit钩子中:在创建标记时检测
  • 您可以使用
    svn log
    svn diff
    以及
    -r FROM:TO
    选项,按日期或修订号收集所需信息。有关更多信息,请参阅。

    首先,您必须决定何时发送电子邮件:

  • 每十年一次
  • 午夜
  • 什么时候标记
  • 然后,您应该能够轻松地实施一个方案,并根据需要执行该方案:

  • 在提交后挂钩中:仅当
    修订号%10==0时发送电子邮件
  • 创建cron作业
  • 在post-commit钩子中:在创建标记时检测

  • 您可以使用
    svn log
    svn diff
    以及
    -r FROM:TO
    选项,按日期或修订号收集所需信息。有关更多信息,请参阅。

    您可以修改提交后电子邮件发件人脚本,以便在提交后发送电子邮件(例如,修订号是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
    

    您可以参考此示例,通过命令svnlook

    从svn存储库中获取日志信息。您可以修改提交后电子邮件发件人脚本,以便在一些提交后发送电子邮件(例如,修订号是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
    

    您可以参考此示例,通过命令svnlook

    从svn存储库获取日志信息。我要发送的电子邮件需要包含所有提交的所有信息。。。不是第5次或第10次…所以每次提交时将内容写入文件,并在第10次提交时发送文件。或者使用“svn日志”和“svn差异”获取您需要的信息。我要发送的电子邮件需要包含所有提交的所有信息。。。不是第5次或第10次…所以每次提交时将内容写入文件,并在第10次提交时发送文件。或者使用“svn日志”和“svn差异”获取所需信息。