Skip to content

Commit

Permalink
Define merger.rb's methods under Merger namespace
Browse files Browse the repository at this point in the history
so that we do not monkey-patch all classes by defining methods on
top-level (Object class).

Not arranging indentation in it to keep `git blame` for now.
  • Loading branch information
k0kubun committed Apr 28, 2019
1 parent 8711f77 commit d835ed4
Showing 1 changed file with 18 additions and 15 deletions.
33 changes: 18 additions & 15 deletions tool/merger.rb
Expand Up @@ -14,8 +14,10 @@
$repos = 'svn+ssh://svn@ci.ruby-lang.org/ruby/'
ENV['LC_ALL'] = 'C'

def help
puts <<-end
module Merger
class << self
def help
puts <<-end
\e[1msimple backport\e[0m
ruby #$0 1234
Expand All @@ -41,11 +43,10 @@ def help
ruby #$0 removetag 2.2.9
\e[33;1m* all operations shall be applied to the working directory.\e[0m
end
end

# Prints the version of Ruby found in version.h
end
end

# Prints the version of Ruby found in version.h
def version
v = p = nil
open 'version.h', 'rb' do |f|
Expand Down Expand Up @@ -201,20 +202,22 @@ def remove_tag intv_p = false, relname
def default_merge_branch
%r{^URL: .*/branches/ruby_1_8_} =~ `svn info` ? 'branches/ruby_1_8' : 'trunk'
end
end # class << self
end # module Merger

case ARGV[0]
when "teenyup"
version_up(:teeny)
Merger.version_up(:teeny)
system 'svn diff version.h'
when "up", /\A(ver|version|rev|revision|lv|level|patch\s*level)\s*up/
version_up
Merger.version_up
system 'svn diff version.h'
when "tag"
tag :interactive, ARGV[1]
Merger.tag :interactive, ARGV[1]
when /\A(?:remove|rm|del)_?tag\z/
remove_tag :interactive, ARGV[1]
Merger.remove_tag :interactive, ARGV[1]
when nil, "-h", "--help"
help
Merger.help
exit
else
system 'svn up'
Expand All @@ -230,7 +233,7 @@ def default_merge_branch
tickets = ''
end

q = $repos + (ARGV[1] || default_merge_branch)
q = $repos + (ARGV[1] || Merger.default_merge_branch)
revstr = ARGV[0].delete('^, :\-0-9a-fA-F')
revs = revstr.split(/[,\s]+/)
commit_message = ''
Expand Down Expand Up @@ -274,18 +277,18 @@ def default_merge_branch
end

if `svn diff --diff-cmd=diff -x -upw`.empty?
interactive 'Nothing is modified, right?' do
Merger.interactive 'Nothing is modified, right?' do
end
end

version_up
Merger.version_up
f = Tempfile.new 'merger.rb'
f.printf "merge revision(s) %s:%s", revstr, tickets
f.write commit_message
f.flush
f.close

interactive 'conflicts resolved?', f.path do
Merger.interactive 'conflicts resolved?', f.path do
IO.popen(ENV["PAGER"] || "less", "w") do |g|
g << `svn stat`
g << "\n\n"
Expand Down

0 comments on commit d835ed4

Please sign in to comment.