#
# 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-cadence Cadence Design Systems
GroupMap contrib/gitdm/group-map-codeweavers CodeWeavers
GroupMap contrib/gitdm/group-map-ibm IBM
GroupMap contrib/gitdm/group-map-janustech Janus Technologies
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
