aboutsummaryrefslogtreecommitdiffstats
path: root/tool/merger.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-03-26 03:57:07 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-03-26 03:57:07 +0000
commit06fba52338e439fdaca5ddf0b35947259aaa7a1c (patch)
tree7e2c5e8326c2d40b0a2853c8b1f61b307addeba4 /tool/merger.rb
parent1b2a60759bd191d19d32fa6cb8bf8ac3bda52322 (diff)
downloadruby-06fba52338e439fdaca5ddf0b35947259aaa7a1c.tar.gz
* tool/merger.rb (interactive): allow editing commit message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool/merger.rb')
-rwxr-xr-xtool/merger.rb13
1 files changed, 7 insertions, 6 deletions
diff --git a/tool/merger.rb b/tool/merger.rb
index 2ea388e796..9b19019f58 100755
--- a/tool/merger.rb
+++ b/tool/merger.rb
@@ -44,14 +44,15 @@ def version
return v, p
end
-def interactive str
+def interactive str, editfile = nil
loop do
yield
- STDERR.puts str
+ STDERR.puts "#{str} ([y]es|[a]bort|[r]etry#{'|[e]dit' if editfile})"
case STDIN.gets
when /\Aa/i then exit
when /\Ar/i then redo
when /\Ay/i then break
+ when /\Ae/i then system(ENV["EDITOR"], editfile)
else exit
end
end
@@ -105,7 +106,7 @@ def tag intv_p = false
z = 'v' + x + '_' + p
w = $repos + 'tags/' + z
if intv_p
- interactive "OK? svn cp -m \"add tag #{z}\" #{y} #{w} ([y]es|[a]bort|[r]etry)" do
+ interactive "OK? svn cp -m \"add tag #{z}\" #{y} #{w}" do
end
end
system *%w'svn cp -m' + ["add tag #{z}"] + [y, w]
@@ -181,14 +182,14 @@ else
f.write log_svn
f.flush
f.close
- f.open # avoid gc
- interactive 'conflicts resolved? (y:yes, a:abort, r:retry, otherwise abort)' do
- f.rewind
+ interactive 'conflicts resolved?', f.path do
IO.popen(ENV["PAGER"] || "less", "w") do |g|
g << `svn stat`
g << "\n\n"
+ f.open
g << f.read
+ f.close
g << "\n\n"
g << `svn diff --diff-cmd=diff -x -upw`
end