diff options
Diffstat (limited to 'tool/merger.rb')
-rwxr-xr-x | tool/merger.rb | 14 |
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 |