#
# This is the gitdm configuration file for QEMU.
#
# It is to be used with LWN's git dataminer tool for generating
# reports about development activity in the QEMU repo. The LWN gitdm
# tool can be found at:
#
#   git://git.lwn.net/gitdm.git
#
# A run to generate a report for the last year of activity would be
#
#   git log --numstat --since "Last Year" | gitdm -n -l 10
#

# EmailAliases lets us cope with developers who use more
# than one address or have changed addresses. This duplicates some of
# the information in the existing .mailmap but in a slightly different
# form.
#
EmailAliases contrib/gitdm/aliases

#
# EmailMap does the main work of mapping addresses onto
# employers.
#
EmailMap contrib/gitdm/domain-map

#
# Use GroupMap to map a file full of addresses to the
# same employer. This is used for people that don't post from easily
# identifiable corporate emails. Please keep this list sorted.
#

GroupMap contrib/gitdm/group-map-alibaba Alibaba
GroupMap contrib/gitdm/group-map-amd AMD
GroupMap contrib/gitdm/group-map-cadence Cadence Design Systems
GroupMap contrib/gitdm/group-map-codeweavers CodeWeavers
GroupMap contrib/gitdm/group-map-facebook Facebook
GroupMap contrib/gitdm/group-map-huawei Huawei
GroupMap contrib/gitdm/group-map-ibm IBM
GroupMap contrib/gitdm/group-map-janustech Janus Technologies
GroupMap contrib/gitdm/group-map-microsoft Microsoft
GroupMap contrib/gitdm/group-map-netflix Netflix
GroupMap contrib/gitdm/group-map-redhat Red Hat
GroupMap contrib/gitdm/group-map-wavecomp Wave Computing

# Also group together our prolific individual contributors
# and those working under academic or intern auspices
GroupMap contrib/gitdm/group-map-individuals (None)
GroupMap contrib/gitdm/group-map-academics Academics (various)
GroupMap contrib/gitdm/group-map-interns GSoC/Outreachy Interns

# Group together robots and other auto-reporters
GroupMap contrib/gitdm/group-map-robots Robots (various)

#
#
# Use FileTypeMap to map a file types to file names using regular
# regular expressions.
#
FileTypeMap contrib/gitdm/filetypes.txt
