[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Presenting the Contribulyzer.

From: Max Bowsher <maxb_at_ukf.net>
Date: 2005-10-08 12:45:47 CEST

kfogel@collab.net wrote:
> Mark Phippard <markp@softlanding.com> writes:
>> Pretty cool.
>>
>> It looks like for partial committers it is not including the actual
>> commits
>> made by those committers unless they are also mentioned in the log
>> message.
>> Often times when partial committers have a patch approved they commit it
>> themselves. Most/many of those do not appear to show up.
>>
>> Perhaps that was intentional?
>
> Nope, not intentional nor desired (though a known bug, I'd noticed it
> before). Partial committers are already on the radar screen, so to
> speak, so it's not *so* critical that every little thing they've done
> show up in the list. However, it would be a real improvement if it
> would include those commits. I hope to get around to that soon (of
> course, if you've got time to make a patch, so much the better!).

The patch is simple - enclosed below.

However, it actually makes the statistics *less* useful at present.
Longstanding partial committers who have done many commits within their
domain, so this pulls many partial committers to the top of the list,
inaccurately, since a commit within their partial domain isn't an indication
to consider expanding their commit access.

What we need, is a way to filter commits against the commit domain of each
committer, but currently the commit domains are defined in ad-hoc English,
and are totally non-machine-parseable.

Max.

[[[
Index: contribulyze.py
===================================================================
--- contribulyze.py (revision 16579)
+++ contribulyze.py (working copy)
@@ -158,10 +158,10 @@

   def score(self):
     """Return a contribution score for this contributor."""
- # Right now we count a patch as 2, anything else as 1.
+ # Right now we count a patch or commit as 2, anything else as 1.
     score = 0
     for activity in self.activities.keys():
- if activity == 'Patch':
+ if activity in ('Patch', 'Commit'):
         score += len(self.activities[activity]) * 2
       else:
         score += len(self.activities[activity])
@@ -457,6 +457,14 @@
           log = LogMessage(m.group(1), m.group(2), m.group(3))
           num_lines = int(m.group(4))
           just_saw_separator = False
+ c = Contributor.get(log.committer, None, None)
+ if not c.is_full_committer:
+ # Including full committers in the data structures causes a
+ # massive performance hit.
+ field = Field('Commit')
+ c.add_activity(field.name, log)
+ field.add_contributor(c)
+ log.add_field(field)
           line = input.readline()
           # Handle 'svn log -v' by waiting for the blank line.
           while line != '\n':
]]]

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 8 12:46:47 2005

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.