[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#38846] [PATCH 0/4] Move 'HACKING' to the manual, and a proposal for
From: |
Ludovic Courtès |
Subject: |
[bug#38846] [PATCH 0/4] Move 'HACKING' to the manual, and a proposal for commit access |
Date: |
Thu, 09 Jan 2020 23:05:35 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hello!
zimoun <address@hidden> 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’.
(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 "."))
- [bug#38846] [PATCH 3/4] doc: Encourage patch review., (continued)
[bug#38846] [PATCH 0/4] Move 'HACKING' to the manual, and a proposal for commit access, Ricardo Wurmus, 2020/01/01
[bug#38846] [PATCH 0/4] Move 'HACKING' to the manual, and a proposal for commit access, Ludovic Courtès, 2020/01/06
[bug#38846] [PATCH 0/4] Move 'HACKING' to the manual, and a proposal for commit access, zimoun, 2020/01/06