From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jambunathan K Newsgroups: gmane.emacs.devel Subject: Re: How many GNU Emacs committers? Date: Sat, 27 Jul 2013 00:20:46 +0530 Message-ID: <87d2q59mux.fsf@gmail.com> References: <874nbhwfz2.fsf@thinkpad.tsdh.org> <87zjt9v14r.fsf@thinkpad.tsdh.org> <83vc3xz7vu.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1374864553 2309 80.91.229.3 (26 Jul 2013 18:49:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 26 Jul 2013 18:49:13 +0000 (UTC) Cc: mhuber@linux-magazin.de, emacs-devel@gnu.org, Tassilo Horn To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jul 26 20:49:14 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1V2n4i-0005wb-47 for ged-emacs-devel@m.gmane.org; Fri, 26 Jul 2013 20:49:12 +0200 Original-Received: from localhost ([::1]:49816 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2n4h-0006sH-OP for ged-emacs-devel@m.gmane.org; Fri, 26 Jul 2013 14:49:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55394) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2n4e-0006sB-FF for emacs-devel@gnu.org; Fri, 26 Jul 2013 14:49:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V2n4d-0008AB-4b for emacs-devel@gnu.org; Fri, 26 Jul 2013 14:49:08 -0400 Original-Received: from mail-pb0-x22e.google.com ([2607:f8b0:400e:c01::22e]:55616) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2n4c-0008A0-QM; Fri, 26 Jul 2013 14:49:07 -0400 Original-Received: by mail-pb0-f46.google.com with SMTP id rq8so2358415pbb.33 for ; Fri, 26 Jul 2013 11:49:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=K7fD4O71Zb3YEev1RHYDvkIe5gmeFPi7UICJ7XerFA0=; b=gX74/ADWt9kHPHW9E+s6WesVt9WL7ei+lC9ow0MNcH07bUQNjtt4kh+Awd6eMTq4zC YaEUcx4QbWFcrSnUN2N66HBsfrNx//UkXf+0O/arHSEI+wkxy6cAHEm0PKcGmLk9YYar E+s5Qrl4CC1I0q8SY1UFiHVIuWfVKsfq3vbMkwWQ2/cCjNqwJf5m0HioyYC/4ONqbysy MIW+vEh8HJ+kSL/BynHv3XaZXHX4kMUGx3ve7i4ZLNto3xqfoL1BHfP3xdkfaJ99s9mi MRNRgHTBsF50XqH+Spi6bRg9nwkAQH91nj5ijx8ZTKgLDYErZtiW8vXVeT9KC3busFox o92g== X-Received: by 10.66.141.71 with SMTP id rm7mr56814546pab.90.1374864545485; Fri, 26 Jul 2013 11:49:05 -0700 (PDT) Original-Received: from debian-6.05 ([115.242.184.132]) by mx.google.com with ESMTPSA id bp12sm5136709pac.1.2013.07.26.11.49.01 for (version=TLSv1.1 cipher=RC4-SHA bits=128/128); Fri, 26 Jul 2013 11:49:04 -0700 (PDT) In-Reply-To: <83vc3xz7vu.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 26 Jul 2013 17:57:25 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400e:c01::22e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:162164 Archived-At: --=-=-= Content-Type: text/plain Here is ChangeLog based stats. Authors include `tiny change' authors. Once Org-8.0 is merge the stats for 2013 will show a marked bump. * Summary ** Year 2012 Total commits : 4895 Unique Authors : 316 | commits | directory | no. of authors | |---------+-------------------------+----------------| | 1454 | lisp/ChangeLog.16 | 151 | | 1085 | src/ChangeLog.12 | 58 | | 736 | lisp/org/ChangeLog | 92 | | 244 | doc/lispref/ChangeLog | 24 | | 230 | lisp/gnus/ChangeLog | 44 | | 224 | ChangeLog | 24 | | 192 | doc/misc/ChangeLog | 49 | | 135 | doc/emacs/ChangeLog | 16 | | 108 | nt/ChangeLog | 9 | | 84 | lib-src/ChangeLog | 14 | | 78 | etc/ChangeLog | 33 | | 71 | admin/ChangeLog | 11 | | 46 | lisp/url/ChangeLog | 17 | | 40 | test/ChangeLog | 11 | | 37 | lisp/cedet/ChangeLog | 19 | | 34 | lisp/erc/ChangeLog | 12 | | 25 | msdos/ChangeLog | 4 | | 21 | leim/ChangeLog | 9 | | 18 | doc/lispintro/ChangeLog | 5 | | 11 | lwlib/ChangeLog | 4 | | 10 | lisp/mh-e/ChangeLog | 5 | | 5 | oldXMenu/ChangeLog | 3 | | 4 | nextstep/ChangeLog | 1 | | 3 | doc/man/ChangeLog | 2 | * Year 2013 Total commits : 1887 Unique Authors : 157 | commits | directory | no. of authors | |---------+--------------------------+----------------| | 567 | /lisp/ChangeLog | 73 | | 280 | /lisp/ChangeLog.16 | 61 | | 238 | /src/ChangeLog | 29 | | 145 | /src/ChangeLog.12 | 18 | | 130 | /lisp/gnus/ChangeLog | 34 | | 93 | /ChangeLog | 17 | | 67 | /doc/misc/ChangeLog | 23 | | 59 | /doc/lispref/ChangeLog | 15 | | 50 | /etc/ChangeLog | 23 | | 47 | /test/ChangeLog | 16 | | 36 | /nt/ChangeLog | 6 | | 34 | /doc/emacs/ChangeLog | 8 | | 33 | /admin/ChangeLog | 6 | | 23 | /lisp/org/ChangeLog | 17 | | 20 | /lisp/cedet/ChangeLog | 9 | | 15 | /lib-src/ChangeLog | 5 | | 9 | /leim/ChangeLog | 4 | | 9 | /doc/lispintro/ChangeLog | 3 | | 9 | /lisp/url/ChangeLog | 3 | | 9 | /lisp/erc/ChangeLog | 4 | | 8 | /lisp/mh-e/ChangeLog | 6 | | 2 | /msdos/ChangeLog | 2 | | 2 | /nextstep/ChangeLog | 1 | | 1 | /doc/man/ChangeLog | 1 | | 1 | /lwlib/ChangeLog | 1 | Here is the rough recipe. 1. M-x find-name-dired for ChangeLog files 2. % g for ^2012- 3. t k 4. RET all the ChangeLog files 5. M-x multi-occur-in-matching-buffers on all ChangeLog buffers for ^2012- 6. In occur buffer, keep only committer name i.e., delete lines nos, email etc 7. delete-duplicate-lines 8. There is also a org-sort-entries and some table magic thrown in. I had to make some little modification to replace.el, so that it dumps filenames instead of the buffer names. I can send in the name of the authors in each of the above directories that is ChangeLog-ged, if there is some interest. --=-=-= Content-Type: text/plain Content-Disposition: inline Content-Description: replace.el.diff === modified file 'lisp/replace.el' --- lisp/replace.el 2013-06-13 22:08:45 +0000 +++ lisp/replace.el 2013-07-26 15:45:21 +0000 @@ -1538,7 +1538,7 @@ See also `multi-occur'." (if (> (length buffers) 1) "" (format " for \"%s\"" (query-replace-descr regexp))) - (buffer-name buf)) + (buffer-file-name buf)) 'read-only t)) (setq end (point)) (add-text-properties beg end --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> From: Tassilo Horn >> Date: Fri, 26 Jul 2013 16:36:52 +0200 >> Cc: emacs-devel@gnu.org >> >> Back when emacs used CVS, only the actual committers were logged, >> though they probably committed tons of changes others sent them per >> mail but couldn't commit themselves. > > The names of the actual authors of the changes are always stated in > the ChangeLog entries, and always have been. > > So I think the ChangeLog files are a much more accurate source of this > kind of information that the VCS logs, including for this reason: > >> And there are many emacs packages that have their own repositories >> (Org, Gnus, ERC, etc.), and not all of them are synched on a >> per-commit basis with emacs' repository, so parts of their >> contributors are probably not included in the statistics, too. --=-=-=--