Edgewall Software

Ticket #1310: trac-post-commit-hook.0.10-stable.2.diff

File trac-post-commit-hook.0.10-stable.2.diff, 2.0 KB (added by markus, 2 years ago)

Patch for international characters in changeset and tickets v2

  • trac-post-commit-hook

     
    3232# 
    3333# REPOS="$1" 
    3434# REV="$2" 
    35 # LOG=`/usr/bin/svnlook log -r $REV $REPOS` 
    36 # AUTHOR=`/usr/bin/svnlook author -r $REV $REPOS` 
    3735# TRAC_ENV='/somewhere/trac/project/' 
    3836# TRAC_URL='http://trac.mysite.com/project/' 
    3937# 
    4038# /usr/bin/python /usr/local/src/trac/contrib/trac-post-commit-hook \ 
    4139#  -p "$TRAC_ENV"  \ 
    4240#  -r "$REV"       \ 
    43 #  -u "$AUTHOR"    \ 
    44 #  -m "$LOG"       \ 
    4541#  -s "$TRAC_URL" 
    4642# 
    4743# It searches commit messages for text in the form of: 
     
    8076# TODO: move grouped_changelog_entries to model.py 
    8177from trac.util.text import to_unicode 
    8278from trac.web.href import Href 
     79from trac.versioncontrol.svn_fs import SubversionRepository, SubversionChangeset 
    8380 
    8481try: 
    8582    from optparse import OptionParser 
     
    137134    def __init__(self, project=options.project, author=options.user, 
    138135                 rev=options.rev, msg=options.msg, url=options.url, 
    139136                 encoding=options.encoding): 
     137        self.env = open_environment(project) 
     138        repos_dir = self.env.config.get('trac', 'repository_dir') 
     139        self.env.get_repository() # will do a `sync` if needed 
     140        repos = SubversionRepository(repos_dir, '', '') 
     141        change = repos.get_changeset(rev) 
     142        msg = change.message 
    140143        msg = to_unicode(msg, encoding) 
    141         self.author = author 
     144        self.author = change.author 
    142145        self.rev = rev 
    143146        self.msg = "(In [%s]) %s" % (rev, msg) 
    144147        self.now = int(time.time())  
    145         self.env = open_environment(project) 
    146         self.env.get_repository() # will do a `sync` if needed 
    147148        if url is None: 
    148149            url = self.env.config.get('project', 'url') 
    149150        self.env.href = Href(url) 
     
    195196 
    196197 
    197198if __name__ == "__main__": 
    198     if len(sys.argv) < 5: 
     199    if len(sys.argv) < 3: 
    199200        print "For usage: %s --help" % (sys.argv[0]) 
    200201    else: 
    201202        CommitHook()