Author: hdu
Date: Tue Dec 11 09:57:22 2012
New Revision: 1420058

URL: http://svn.apache.org/viewvc?rev=1420058&view=rev
Log:
sort by issue type/prio/id and also link to individual revisions

Modified:
    openoffice/devtools/scripts/svnlog2info.py

Modified: openoffice/devtools/scripts/svnlog2info.py
URL: 
http://svn.apache.org/viewvc/openoffice/devtools/scripts/svnlog2info.py?rev=1420058&r1=1420057&r2=1420058&view=diff
==============================================================================
--- openoffice/devtools/scripts/svnlog2info.py (original)
+++ openoffice/devtools/scripts/svnlog2info.py Tue Dec 11 09:57:22 2012
@@ -27,7 +27,7 @@ import xmlrpclib
 from subprocess import Popen, PIPE
 
 
-# string constants for the Apache OpenOffice project
+# string constants to get the info for the Apache OpenOffice project
 bzsoap = "https://issues.apache.org/ooo/xmlrpc.cgi";
 issue_pattern = 
"^\s*(?:re)?(?:fix)?\s*(?:for)?\s*(?:bug|issue|problem)?\s*#?i?([1-9][0-9][0-9][0-9]+)[#:
 ]"
 bugref_url = "https://issues.apache.org/ooo/show_bug.cgi?id=";
@@ -153,16 +153,23 @@ def revs2info( htmlname, all_revs, svnur
        other_revs = []
        for rev in all_revs:
                if rev.issue:
-                       bugid_map[ rev.issue] = True
+                       if not rev.issue in bugid_map:
+                               bugid_map[ rev.issue] = []
+                       bugid_map[ rev.issue].append( rev.revnum)
                else:
                        other_revs.append( rev.revnum)
 
+       revurl_base = "http://svn.apache.org/viewvc?view=revision&revision=%d";
+
        # emit info about issues referenced in revisions
        if len(bugid_map):
                htmlfile.write( "<h2>Issues addressed:</h2>\n<table 
border=\"0\">\n")
                proxy = xmlrpclib.ServerProxy( bzsoap, verbose=False)
                 soaprc = proxy.Bug.get( {"ids" : bugid_map.keys()})
-               for bug in soaprc["bugs"]:
+               type2prio = {"FEATURE":1, "ENHANCEMENT":2, "PATCH":3, 
"DEFECT":4, "TASK":5}
+               sorted_issues = sorted( soaprc["bugs"],
+                       key = lambda b: type2prio[b["cf_bug_type"]]*1e9 + 
int(b["priority"][1:])*1e8 + int(b["id"]))
+               for bug in sorted_issues:
                        idnum = int( bug[ "id"])
                        bug_url = bugref_url + str(idnum)
                        bug_desc = bug[ "summary"]
@@ -172,18 +179,26 @@ def revs2info( htmlname, all_revs, svnur
                        priority = int(bug[ "priority"][1:])
 
                        if bug_type == "DEFECT":
-                               color = "#800000"
+                               color = "#800"
                                if priority <= 2:
-                                       color = "#F00000"
+                                       color = "#F00"
                        elif bug_type == "FEATURE":
-                               color = "#008000#"
+                               color = "#080"
                        elif bug_type == "TASK":
-                               color = "#000080#"
+                               color = "#008"
+                       else:
+                               color = None
 
                        line = "<tr>"
                        line += "<td><a href=\"%s\">#i%d#</a></td>" % (bug_url, 
idnum)
-                       line += "<td>%s</td>" % (bug_type)
                        line += "<td>P%d</td>" % (priority)
+                       line += "<td>%s</td>" % (bug_type)
+                       line += "<td>"
+                       print str(bugid_map[ idnum])
+                       for r in bugid_map[ idnum]:
+                               revurl = revurl_base % (r)
+                               line += "<a href=\"%s\">c</a>" % (revurl)
+                       line += "</td>"
                        line += "<td>%s</td>" % (bug_target)
                        line += "<td>%s</td>" % (bug_status)
                        line += "<td>"
@@ -200,12 +215,12 @@ def revs2info( htmlname, all_revs, svnur
 
        # emit info about other revisions
        if len(other_revs):
-               htmlfile.write( "<h2>Other Commits:</h2>\n<table 
border=\"0\">\n")
+               htmlfile.write( "<h2>Commits without Issue 
References:</h2>\n<table border=\"0\">\n")
                for rev in all_revs:
                        if rev.issue:
                                continue
                        line = "<tr>"
-                       revurl = 
"http://svn-master.apache.org/viewvc?view=revision&revision=%d"; % (rev.revnum)
+                       revurl = revurl_base % (rev.revnum)
                        line += "<td><a href=\"%s\">r%d</a></td>" % (revurl, 
rev.revnum)
                        summary = rev.log.splitlines()[0]
                        line += "<td>%s</td>" % (summary.encode('utf-8'))
@@ -230,8 +245,8 @@ def main(args):
        revmin = int(args[2])
        revmax = int(args[3])
 
-       svnurl = "http://svn-master.apache.org/repos/asf/openoffice/%s"; % 
(branchname)
-       svnout = get_svn_log( svnurl, revmin, revmax):
+       svnurl = "http://svn.apache.org/repos/asf/openoffice/%s"; % (branchname)
+       svnout = get_svn_log( svnurl, revmin, revmax)
        revlist = parse_svn_log( svnout)
        revs2info( infoout_name, revlist, svnurl, revmin, revmax)
 


Reply via email to