summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-21 12:26:06 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-21 12:26:06 +0000
commit72be46f104446ed2dd0a6c2476045fa9f9051f6e (patch)
tree8d668dd644f043ef862f7c6e83770e4f56aaf6ec /tool
parent2c31e6dec4e0625c9a79f7d5df669d2ee5abb1de (diff)
Drop tool/generate-backport-changelog.rb
because we're not writing ChangeLog since ruby_2_4. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool')
-rw-r--r--tool/generate-backport-changelog.rb99
1 files changed, 0 insertions, 99 deletions
diff --git a/tool/generate-backport-changelog.rb b/tool/generate-backport-changelog.rb
deleted file mode 100644
index 0e8676a085..0000000000
--- a/tool/generate-backport-changelog.rb
+++ /dev/null
@@ -1,99 +0,0 @@
-#!ruby
-require "time"
-
-def usage!
- STDERR.puts <<-EOS
-Usage: #$0 [--trunk=<dir>] [--target=<dir>] <revision(s)>
-
-Generate ChangeLog entries for backporting.
-The entries are output to STDOUT, and the messages of this tool are output to
-STDERR. So you can simply redirect STDOUT to get the entries.
-
-You should specify the path of trunk by `--trunk`. If not, assumed cwd.
-You also should specify the path of the target branch by `--target`. If not,
-assumed cwd.
-This means that you have to specify at least one of `--trunk` or `--target`.
-
-revision(s) can be below or their combinations:
- 12345 # means r12345
- 12345,54321 # means r12345 and r54321
- 12345-12347 # means r12345, r12346 and r12347 (of course, if available)
-
-Note that the revisions is backported branch's ones, not trunk's.
-
-The target of this tool is *not* to generate ChangeLog automatically, but to
-generate the draft of ChangeLog.
-You have to check and modify the output.
- EOS
- exit
-end
-
-Majors = {
- "eregon" => "Benoit Daloze <eregontp@gmail.com>",
- "kazu" => "Kazuhiro NISHIYAMA <zn@mbf.nifty.com>",
- "ko1" => "Koichi Sasada <ko1@atdot.net>",
- "marcandre" => "Marc-Andre Lafortune <ruby-core@marc-andre.ca>",
- "naruse" => "NARUSE, Yui <naruse@ruby-lang.org>",
- "nobu" => "Nobuyoshi Nakada <nobu@ruby-lang.org>",
- "normal" => "Eric Wong <normalperson@yhbt.net>",
- "rhe" => "Kazuki Yamaguchi <k@rhe.jp>",
- "shugo" => "Shugo Maeda <shugo@ruby-lang.org>",
- "stomar" => "Marcus Stollsteimer <sto.mar@web.de>",
- "usa" => "NAKAMURA Usaku <usa@ruby-lang.org>",
- "zzak" => "Zachary Scott <e@zzak.io>",
-}
-
-trunk = "."
-target = "."
-ARGV.delete_if{|e| /^--trunk=(.*)/ =~ e && trunk = $1}
-ARGV.delete_if{|e| /^--target=(.*)/ =~ e && target = $1}
-usage! if ARGV.size == 0 || trunk == target
-
-revisions = []
-ARGV.each do |a|
- a.split(/,/).each do |b|
- if /-/ =~ b
- revisions += Range.new(*b.split(/-/, 2).map{|e| Integer(e)}).to_a
- else
- revisions << Integer(b)
- end
- end
-end
-revisions.sort!
-revisions.reverse!
-
-revisions.each do |rev|
- if /^Index: ChangeLog$/ =~ `svn diff -c #{rev} #{target}`
- STDERR.puts "#{rev} already has ChangeLog. Skip."
- else
- lines = `svn log -r #{rev} #{target}`.lines[1..-2]
- if lines.empty?
- STDERR.puts "#{rev} does not exist. Skip."
- next
- end
- unless /^merge revision\(s\) (\d+)/ =~ lines[2]
- STDERR.puts "#{rev} is not seems to be a merge commit. Skip."
- next
- end
- original = $1
- committer = `svn log -r #{original} #{trunk}`.lines[1].split(/\|/)[1].strip
- if Majors[committer]
- committer = Majors[committer]
- else
- committer = "#{committer} <#{committer}@ruby-lang.org>"
- end
- time = Time.parse(lines.shift.split(/\|/)[2]).getlocal("+09:00")
- puts "#{time.asctime} #{committer}"
- puts
- lines.shift(2) # skip "merge" line
- lines.shift while lines.first == "\n"
- lines.pop while lines.last == "\n"
- lines.each do |line|
- line.chomp!
- line = "\t#{line}" if line[0] != "\t" && line != ""
- puts line
- end
- puts
- STDERR.puts "#{rev} is processed."
- end
-end