Files
@ ac6cc1b8a07e
Branch filter:
Location: kallithea/scripts/shortlog.py - annotation
ac6cc1b8a07e
1.0 KiB
text/x-python
scripts: new maintainer script validate-minimum-dependency-versions
Automate what we can.
This script could be added later to an encompassing script
'prepare-for-release' (which would also do other release-related steps).
The trick '2> >(tee "$log" >&2)' sends the error output to the console while
at the same time writing to a file. It uses bash-specific syntax (process
substitution: >(...) )
See https://stackoverflow.com/a/692407/2941347 .
Includes contributions by Mads Kiilerich.
Automate what we can.
This script could be added later to an encompassing script
'prepare-for-release' (which would also do other release-related steps).
The trick '2> >(tee "$log" >&2)' sends the error output to the console while
at the same time writing to a file. It uses bash-specific syntax (process
substitution: >(...) )
See https://stackoverflow.com/a/692407/2941347 .
Includes contributions by Mads Kiilerich.
30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 0a277465fddf 30e3d0a14f09 30e3d0a14f09 0a277465fddf 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 | #!/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()
|