GNU bug report logs -
#38846
[PATCH 0/4] Move 'HACKING' to the manual, and a proposal for commit access
Previous Next
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Wed, 1 Jan 2020 16:31:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #98 received at 38846 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello!
zimoun <zimon.toutoune <at> gmail.com> skribis:
>>From the v1.0.1 to now, the repartition of committers which are not the authors:
>
> 361
> 78
> 65
> 61
> 59
> 54
> 52
> 47
> 44
> 43
> 37
> 21 (x2)
> 11
> 9
> 8
> 7 (x2)
> 6
> 5 (x3)
> 4 (x2)
> 3
> 2 (x3)
> 1 (x3)
>
> which should be compared to the number of commits per author also
> committer (first 10):
>
> 1463
> 1162
> 886
> 670
> 618
> 335
> 204
> 166
> 161
> 150
I had overlooked that; interesting, though I’m not sure what conclusion(s)
to draw. Perhaps we should look at how these numbers evolve over time?
Related to that, attached is a script I wrote a while back to view the
number of reviews per committer (ah ha!), like so:
--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> (define r (reviewers repo))
scheme@(guile-user)> ,pp (sort (map car r) <)
$3 = (0
;; long tail omitted…
1
1
1
1
2
2
2
2
2
4
5
5
6
9
9
9
10
11
13
13
17
18
19
30
37
37
38
40
40
45
48
51
59
63
72
84
85
88
99
181
186
264
287
506
526
1620)
--8<---------------cut here---------------end--------------->8---
This is for all-time commits, so not all that representative, but could
be used as a starting point for the statistician in you. :-)
Ludo’.
[reviewers.scm (text/plain, inline)]
(use-modules (git)
(git repository)
(git reference)
(git oid)
(git tag)
(git commit)
(git structs) ;signature-email, etc.
(srfi srfi-1)
(srfi srfi-26)
(ice-9 match)
(ice-9 vlist))
(define commit-author*
(compose signature-name commit-author))
(define commit-committer*
(compose signature-name commit-committer))
(define-syntax-rule (false-if-git-error exp)
(catch 'git-error
(lambda () exp)
(const #f)))
(define* (fold-commits proc seed repo
#:key
(start (reference-target
(repository-head repo)))
end)
"Call PROC on each commit of REPO, starting at START (an OID), and until
END if specified."
(let loop ((commit (commit-lookup repo start))
(result seed))
(let ((parent (false-if-git-error (commit-parent commit))))
(if parent
(if (and end (oid=? (commit-id parent) end))
(proc parent result)
(loop parent (proc parent result)))
result))))
(define (reviewers repo)
"Return a list of review count/committer pairs."
(define vhash
(fold-commits (lambda (commit result)
(if (string=? (commit-author* commit)
(commit-committer* commit))
result
(vhash-cons (commit-committer* commit) #t
result)))
vlist-null
repo))
(define committers
(delete-duplicates
(fold-commits (lambda (commit result)
(cons (commit-committer* commit)
result))
'()
repo)))
(map (lambda (committer)
(cons (vhash-fold* (lambda (_ count)
(+ 1 count))
0
committer
vhash)
committer))
committers))
(define (reviewer< r1 r2)
(match r1
((count1 . name1)
(match r2
((count2 . name2)
(< count1 count2))))))
(libgit2-init!)
(define repo
(repository-open "."))
This bug report was last modified 5 years and 135 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.