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