Files
@ 8fbcdfe364d4
Branch filter:
Location: kallithea/scripts/shortlog.py - annotation
8fbcdfe364d4
1.0 KiB
text/x-python
tests: make test_forks teardown more stable
It would sometimes fail like:
kallithea/tests/functional/test_forks.py:35: in teardown_method
Session().delete(self.u1)
data/env/lib/python2.7/site-packages/sqlalchemy/orm/session.py:1871: in delete
self._delete_impl(state, instance, head=True)
data/env/lib/python2.7/site-packages/sqlalchemy/orm/session.py:1888: in _delete_impl
self.identity_map.add(state)
data/env/lib/python2.7/site-packages/sqlalchemy/orm/identity.py:149: in add
orm_util.state_str(state), state.key))
E InvalidRequestError: Can't attach instance <User at 0x7f93d2f81a10>; another instance with key (<class 'kallithea.model.db.User'>, (10,), None) is already present in this session.
It would sometimes fail like:
kallithea/tests/functional/test_forks.py:35: in teardown_method
Session().delete(self.u1)
data/env/lib/python2.7/site-packages/sqlalchemy/orm/session.py:1871: in delete
self._delete_impl(state, instance, head=True)
data/env/lib/python2.7/site-packages/sqlalchemy/orm/session.py:1888: in _delete_impl
self.identity_map.add(state)
data/env/lib/python2.7/site-packages/sqlalchemy/orm/identity.py:149: in add
orm_util.state_str(state), state.key))
E InvalidRequestError: Can't attach instance <User at 0x7f93d2f81a10>; another instance with key (<class 'kallithea.model.db.User'>, (10,), None) is already present in this session.
30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 30e3d0a14f09 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()
|