summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtool/merger.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/tool/merger.rb b/tool/merger.rb
index 819f980601..0ad9dd3664 100755
--- a/tool/merger.rb
+++ b/tool/merger.rb
@@ -170,19 +170,25 @@ else
end
q = $repos + (ARGV[1] || default_merge_branch)
- revs = ARGV[0].split(/,\s*/)
+ revstr = ARGV[0].delete('^, :\-0-9')
+ revs = revstr.split(/[,\s]+/)
log = ''
log_svn = ''
revs.each do |rev|
case rev
- when /\Ar?\d+:r?\d+\z/
+ when /\A\d+:\d+\z/
r = ['-r', rev]
- when /\Ar?\d+\z/
+ when /\A(\d+)-(\d+)\z/
+ r = ['-r', rev]
+ when /\A\d+\z/
r = ['-c', rev]
when nil then
puts "#$0 revision"
exit
+ else
+ puts "invalid revision part '#{rev}' in '#{ARGV[0]}'"
+ exit
end
l = IO.popen %w'svn diff' + r + %w'--diff-cmd=diff -x -pU0' + [File.join(q, 'ChangeLog')] do |f|
@@ -224,7 +230,7 @@ else
version_up
f = Tempfile.new 'merger.rb'
- f.printf "merge revision(s) %s:%s\n", ARGV[0], tickets.join
+ f.printf "merge revision(s) %s:%s\n", revstr, tickets.join
f.write log_svn
f.flush
f.close