Ihave platform windows server 2008, installed trac .11 with mod_wsgi
to use apache server. my post-commit-hook script does not update trac
ticket. I am hoping someone can help me check if my parameters are set
right.
Thank you for your help
Lynda
Here are the insatllations:
C:\Python26
C:\trac // this is my trac environment
In my repository/hooks diretcory:
<b>In script post-commit.bat:</b>
%~dp0\trac-post-commit.cmd %1 %2
<b>In Script trac-post-commit.cmd:</b>
for /F %%A in ('svnlook author -r %REV% %1') do set AUTHOR=%%A
for /F "delims==" %%B in ('svnlook log -r %REV% %1') do set LOG=%%B
:: CALL THE PYTHON SCRIPT
Python "%~dp0\trac-post-commit" -p "%TRAC_ENV%" -r "%REV%" -u "%AUTHOR
%" -m "%LOG%"
<b>In Script trac-post-commit :</b>
import os
import re
import sys
if not 'PYTHON_EGG_CACHE' in os.environ:
os.environ['PYTHON_EGG_CACHE'] = os.path.join(sys.argv[1], '.egg-
cache')
from trac.env import open_environment
def main():
if len(sys.argv) != 3:
print >> sys.stderr, 'Usage: %s <trac_project> <log_message>'
% sys.argv[0]
sys.exit(1)
env_path = sys.argv[1]
log = sys.argv[2]
tickets = []
for tmp in re.findall('(?:close|closed|closes|fix|fixed|fixes|
addresses|references|refs|re|see)'
'.?(#[0-9]+(?:(?:[, &]+| *and *)#[0-9]+)*)',
log.lower()):
tickets += re.findall('#([0-9]+)', tmp)
# At least one ticket has to be mentioned in the log message
if tickets == []:
print >> sys.stderr, 'At least one open ticket must be
mentioned ' \
'in the log message.'
sys.exit(1)
env = open_environment(env_path)
db = env.get_db_cnx()
cursor = db.cursor()
cursor.execute("SELECT COUNT(id) FROM ticket WHERE "
"status <> 'closed' AND id IN (%s)" % ','.join
(tickets))
row = cursor.fetchone()
# At least one of the tickets mentioned in the log messages has to
# be open
if not row or row[0] < 1:
print >> sys.stderr, 'At least one open ticket must be
mentioned ' \
'in the log message.'
sys.exit(1)
else:
sys.exit(0)
if __name__ == '__main__':
main()
--
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/trac-users?hl=en.