introduced new configuration option 'chengelogcmd' to be able to ommit list of changed files from the log message

master
Antonin Kral 2010-09-16 12:41:22 +04:00
parent ec47a7444e
commit b6a5dd4132
5 changed files with 19 additions and 6 deletions

View File

@ -28,6 +28,7 @@ explicit or implied, to the extent permissible by law.
This program might, and would be buggy. Use it at your own risk. This program might, and would be buggy. Use it at your own risk.
""" """
sDefaultChangeLogCommand = "whatchanged"
sDefaultSeparator = "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~." sDefaultSeparator = "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~."
sDefaultFormatSpec = """ sDefaultFormatSpec = """

View File

@ -73,6 +73,12 @@
# appended to '--format=format:' in 'git whatchanged'. See the # appended to '--format=format:' in 'git whatchanged'. See the
# 'git whatchanged' manpage for more info. # 'git whatchanged' manpage for more info.
# #
# * changelogcmd
# default: whatchanged
#
# command which will be used for getting changelog from git
# another reasonable value is 'log'
#
# * separator # * separator
# #
# default: ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. # default: ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.

View File

@ -7,12 +7,12 @@ hooks - git hooks provided by gitzilla.
import re import re
import sys import sys
from utils import get_changes, init_bugzilla, get_bug_status, notify_and_exit from utils import get_changes, init_bugzilla, get_bug_status, notify_and_exit
from gitzilla import sDefaultSeparator, sDefaultFormatSpec, oDefaultBugRegex from gitzilla import sDefaultSeparator, sDefaultFormatSpec, sDefaultChangeLogCommand, oDefaultBugRegex
from gitzilla import NullLogger from gitzilla import NullLogger
import traceback import traceback
def post_receive(sBZUrl, sBZUser=None, sBZPasswd=None, sFormatSpec=None, oBugRegex=None, sSeparator=None, logger=None, bz_init=None): def post_receive(sBZUrl, sBZUser=None, sBZPasswd=None, sFormatSpec=None, sChangeLogCommand=None, oBugRegex=None, sSeparator=None, logger=None, bz_init=None):
""" """
a post-recieve hook handler which extracts bug ids and adds the commit a post-recieve hook handler which extracts bug ids and adds the commit
info to the comment. If multiple bug ids are found, the comment is added info to the comment. If multiple bug ids are found, the comment is added
@ -55,6 +55,9 @@ def post_receive(sBZUrl, sBZUser=None, sBZPasswd=None, sFormatSpec=None, oBugReg
if sFormatSpec is None: if sFormatSpec is None:
sFormatSpec = sDefaultFormatSpec sFormatSpec = sDefaultFormatSpec
if sChangeLogCommand is None:
sChangeLogCommand = sDefaultChangeLogCommand
if sSeparator is None: if sSeparator is None:
sSeparator = sDefaultSeparator sSeparator = sDefaultSeparator
@ -75,7 +78,7 @@ def post_receive(sBZUrl, sBZUser=None, sBZPasswd=None, sFormatSpec=None, oBugReg
if sPrevRev is None: if sPrevRev is None:
sPrevRev = sOldRev sPrevRev = sOldRev
logger.debug("oldrev: '%s', newrev: '%s'" % (sOldRev, sNewRev)) logger.debug("oldrev: '%s', newrev: '%s'" % (sOldRev, sNewRev))
asChangeLogs = get_changes(sOldRev, sNewRev, sFormatSpec, sSeparator) asChangeLogs = get_changes(sOldRev, sNewRev, sFormatSpec, sSeparator, sChangeLogCommand)
for sMessage in asChangeLogs: for sMessage in asChangeLogs:
logger.debug("Considering commit:\n%s" % (sMessage,)) logger.debug("Considering commit:\n%s" % (sMessage,))
@ -144,6 +147,7 @@ def update(oBugRegex=None, asAllowedStatuses=None, sSeparator=None, sBZUrl=None,
bz_init = init_bugzilla bz_init = init_bugzilla
sFormatSpec = sDefaultFormatSpec sFormatSpec = sDefaultFormatSpec
sChangeLogCommand = sDefaultChangeLogCommand
if asAllowedStatuses is not None: if asAllowedStatuses is not None:
# sanity checking # sanity checking
@ -162,7 +166,7 @@ def update(oBugRegex=None, asAllowedStatuses=None, sSeparator=None, sBZUrl=None,
(sOldRev, sNewRev) = sys.argv[2:4] (sOldRev, sNewRev) = sys.argv[2:4]
logger.debug("oldrev: '%s', newrev: '%s'" % (sOldRev, sNewRev)) logger.debug("oldrev: '%s', newrev: '%s'" % (sOldRev, sNewRev))
asChangeLogs = get_changes(sOldRev, sNewRev, sFormatSpec, sSeparator) asChangeLogs = get_changes(sOldRev, sNewRev, sFormatSpec, sSeparator, sChangeLogCommand)
for sMessage in asChangeLogs: for sMessage in asChangeLogs:
logger.debug("Checking for bug refs in commit:\n%s" % (sMessage,)) logger.debug("Checking for bug refs in commit:\n%s" % (sMessage,))

View File

@ -146,10 +146,12 @@ def post_receive():
oBugRegex = get_bug_regex(siteconfig) oBugRegex = get_bug_regex(siteconfig)
sSeparator = get_or_default(siteconfig, sRepo, "separator") sSeparator = get_or_default(siteconfig, sRepo, "separator")
sFormatSpec = get_or_default(siteconfig, sRepo, "formatspec") sFormatSpec = get_or_default(siteconfig, sRepo, "formatspec")
sChangeLogCommand = get_or_default(siteconfig, sRepo, "changelogcmd")
bz_init = make_bz_init(siteconfig, bAllowDefaultAuth) bz_init = make_bz_init(siteconfig, bAllowDefaultAuth)
gitzilla.hooks.post_receive(sBZUrl, sBZUser, sBZPasswd, sFormatSpec, gitzilla.hooks.post_receive(sBZUrl, sBZUser, sBZPasswd, sFormatSpec,
sChangeLogCommand,
oBugRegex, sSeparator, logger, bz_init) oBugRegex, sSeparator, logger, bz_init)

View File

@ -51,7 +51,7 @@ def init_bugzilla(sBZUrl, sBZUser, sBZPasswd):
def get_changes(sOldRev, sNewRev, sFormatSpec, sSeparator): def get_changes(sOldRev, sNewRev, sFormatSpec, sSeparator, sChangeLogCommand):
""" """
returns an array of chronological changes, between sOldRev and sNewRev, returns an array of chronological changes, between sOldRev and sNewRev,
according to the format spec sFormatSpec. according to the format spec sFormatSpec.
@ -63,7 +63,7 @@ def get_changes(sOldRev, sNewRev, sFormatSpec, sSeparator):
else: else:
sCommitRange = "%s..%s" % (sOldRev, sNewRev) sCommitRange = "%s..%s" % (sOldRev, sNewRev)
sChangeLog = execute(["git", "whatchanged", sChangeLog = execute(["git", "%s" % (sChangeLogCommand),
"--format=format:%s%s" % (sSeparator, sFormatSpec), "--format=format:%s%s" % (sSeparator, sFormatSpec),
sCommitRange]) sCommitRange])
asChangeLogs = sChangeLog.split(sSeparator) asChangeLogs = sChangeLog.split(sSeparator)