view scripts/shortlog.py @ 7834:e6b9194ab3f8

scm: select options should be tuples - not lists with 2 elements We use tuples in all(?) other places, so we should do the same here. Since lists can be unpacked as tuples, it currently works to use 2-lists. But in a following change for "correct" handling of webhelpers.select when using webhelpers2.select, we want to give special handling to tuples vs strings vs Options. We don't want to add list to that list.
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 18 Aug 2019 19:50:49 +0200
parents 0a277465fddf
children 2786730e56e0
line wrap: on
line source

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

"""
Kallithea script for generating a quick overview of contributors and their
commit counts in a given revision set.
"""
import argparse
import os
from collections import Counter

import contributor_data


def main():

    parser = argparse.ArgumentParser(description='Generate a list of committers and commit counts.')
    parser.add_argument('revset',
                        help='revision set specifying the commits to count')
    args = parser.parse_args()

    repo_entries = [
        (contributor_data.name_fixes.get(name) or contributor_data.name_fixes.get(name.rsplit('<', 1)[0].strip()) or name).rsplit('<', 1)[0].strip()
        for name in (line.strip()
         for line in os.popen("""hg log -r '%s' -T '{author}\n'""" % args.revset).readlines())
        ]

    counter = Counter(repo_entries)
    for name, count in counter.most_common():
        if name == '':
            continue
        print('%4s %s' % (count, name))


if __name__ == '__main__':
    main()