forked from bcosorg/bcos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
duplicates.sh
92 lines (81 loc) · 3.48 KB
/
duplicates.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
#------------------------------------------------------------------------------
# Python script to analysis cpp-ethereum commits, and filter out duplicates
#
# The documentation for cpp-ethereum is hosted at http://cpp-ethereum.org
#
# ------------------------------------------------------------------------------
# This file is part of cpp-ethereum.
#
# cpp-ethereum is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cpp-ethereum is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>
#
# (c) 2016 cpp-ethereum contributors.
#------------------------------------------------------------------------------
import operator
import re
authorRegex = re.compile('Author: (.*) <(.*)>')
dateRegex = re.compile('Date: (.*)')
authorAliases = {}
authorAliases['arkpar'] = 'Arkadiy Paronyan'
authorAliases['arkady.paronyan@gmail.com'] = 'Arkadiy Paronyan'
authorAliases['Arkady Paronyan'] = 'Arkadiy Paronyan'
authorAliases['artur-zawlocki'] = 'Artur Zawłocki'
authorAliases['Artur Zawlocki'] = 'Artur Zawłocki'
authorAliases['Artur Zawłocki'] = 'Artur Zawłocki'
authorAliases['caktux'] = 'Vincent Gariepy'
authorAliases['chriseth'] = 'Christian Reitwiessner'
authorAliases['Christian'] = 'Christian Reitwiessner'
authorAliases['CJentzsch'] = 'Christoph Jentzsch'
authorAliases['debris'] = 'Marek Kotewicz'
authorAliases['debris-berlin'] = 'Marek Kotewicz'
authorAliases['Dimitry'] = 'Dimitry Khokhlov'
authorAliases['Dmitry K'] = 'Dimitry Khokhlov'
authorAliases['ethdev'] = 'Marek Kotewicz'
authorAliases['gluk256'] = 'Vlad Gluhovsky'
authorAliases['Greg'] = 'Greg Colvin'
authorAliases['Marian OANCΞA'] = 'Marian Oancea'
authorAliases['ethdev zug'] = 'Marek Kotewicz'
authorAliases['Gav Wood'] = 'Gavin Wood'
authorAliases['U-SVZ13\Arkady'] = 'Arkadiy Paronyan'
authorAliases['liana'] = 'Liana Husikyan'
authorAliases['LianaHus'] = 'Liana Husikyan'
authorAliases['subtly'] = 'Alex Leverington'
authorAliases['unknown'] = 'Marek Kotewicz'
authorAliases['vbuterin'] = 'Vitalik Buterin'
authorAliases['winsvega'] = 'Dimitry Khokhlov'
authorAliases['yann300'] = 'Yann Levreau'
commitCounts = {}
commitAlreadySeen = {}
with open('log.txt') as logFile:
author = ""
for line in logFile:
match = authorRegex.match(line)
if match:
author = match.group(1)
if authorAliases.has_key(author):
author = authorAliases[author]
match = dateRegex.match(line)
if match:
date = match.group(1)
if commitAlreadySeen.has_key(author + date):
print "Filtering out .... " + author + " - " + date
else:
commitAlreadySeen[author + date] = 1
if not commitCounts.has_key(author):
commitCounts[author] = 1
else:
commitCounts[author] = commitCounts[author] + 1
for key in sorted(commitCounts, key=commitCounts.get): #sorted(commitCounts.items()):
print key + " has " + str(commitCounts[key]) + " commits"