summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2019-12-15 21:59:30 +0900
committerYusuke Endoh <mame@ruby-lang.org>2019-12-15 22:06:13 +0900
commit48bab6fe1eb77b481bffbc97fdbf5ba74c45a07a (patch)
tree33d12332512399bd104b702b5ba6cd5f64b37e46
parenta83c46e3fd1e3480404c6dda4c4cda73533a6a1d (diff)
tool/gen-mailmap.rb: Added for generating git `.mailmap` file
`.mailmap` can be used To show canonical names and email addresses. It is helpful for statistics of committers.
-rwxr-xr-xtool/gen-mailmap.rb49
1 files changed, 49 insertions, 0 deletions
diff --git a/tool/gen-mailmap.rb b/tool/gen-mailmap.rb
new file mode 100755
index 0000000000..07dde412de
--- /dev/null
+++ b/tool/gen-mailmap.rb
@@ -0,0 +1,49 @@
+#!/usr/bin/env ruby
+
+require "open-uri"
+require "yaml"
+
+EMAIL_YML_URL = "https://raw.githubusercontent.com/ruby/ruby-commit-hook/master/config/email.yml"
+
+email_yml = URI.open(EMAIL_YML_URL).read.sub(/\A(?:#.*\n)+/, "").gsub(/^# +(.+)$/) { $1 + ": []" }
+
+email = YAML.load(email_yml)
+YAML.load(DATA.read).each do |name, mails|
+ email[name] ||= []
+ email[name] |= mails
+end
+
+open(File.join(__dir__, "../.mailmap"), "w") do |f|
+ email.each do |name, mails|
+ canonical = "#{ name }@ruby-lang.org"
+ mails.delete(canonical)
+ svn = "#{ name }@b2dd03c8-39d4-4d8f-98ff-823fe69b080e"
+ ((mails | [canonical]) + [svn]).each do |mail|
+ f.puts "#{ name } <#{ canonical }> <#{ mail }>"
+ end
+ end
+end
+
+puts "You'll see canonical names (SVN account names) by the following commands:"
+puts
+puts " git shortlog -ce"
+puts " git log --pretty=format:'%cN <%cE>'"
+puts " git log --use-mailmap --pretty=full"
+
+__END__
+git:
+- svn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e
+- "(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e"
+kazu:
+- znz@users.noreply.github.com
+marcandre:
+- github@marc-andre.ca
+mrkn:
+- mrkn@users.noreply.github.com
+- muraken@b2dd03c8-39d4-4d8f-98ff-823fe69b080e
+naruse:
+- nurse@users.noreply.github.com
+odaira:
+- rodaira@us.ibm.com
+tenderlove:
+- tenderlove@github.com