From b8c704ef4d0da6fc3abb56bf58652664424c3c3a Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 7 Nov 2016 03:25:28 +0000 Subject: vcs.rb: exclude beginning revision * tool/make-snapshot: pass the last revision in the last ChangeLog file without increment. * tool/vcs.rb (export_changelog): exclude the beginning revision of the range uniformly. svn log includes it, but git log not. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- tool/make-snapshot | 2 +- tool/vcs.rb | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) (limited to 'tool') diff --git a/tool/make-snapshot b/tool/make-snapshot index f278286b70..d2f92f53c6 100755 --- a/tool/make-snapshot +++ b/tool/make-snapshot @@ -220,7 +220,7 @@ def package(vcs, rev, destdir, tmp = nil) unless /\Ar(\d+) / =~ f.readline abort "Cannot find revision from '#{last_ChangeLog}'" end - vcs.export_changelog($1.to_i+1, revision.to_i, "#{v}/ChangeLog") + vcs.export_changelog($1.to_i, revision.to_i, "#{v}/ChangeLog") end open("#{v}/revision.h", "wb") {|f| f.puts "#define RUBY_REVISION #{revision}"} diff --git a/tool/vcs.rb b/tool/vcs.rb index fd56b42eca..5ef77e424d 100644 --- a/tool/vcs.rb +++ b/tool/vcs.rb @@ -306,8 +306,9 @@ class VCS end def export_changelog(from, to, path) + range = [to, (from+1 if from)].compact.join(':') IO.popen({'TZ' => 'JST-9', 'LANG' => 'C', 'LC_ALL' => 'C'}, - %W"svn log -r#{to}:#{from} #{url}") do |r| + %W"svn log -r#{range} #{url}") do |r| open(path, 'w') do |w| IO.copy_stream(r, w) end @@ -390,14 +391,16 @@ class VCS end def export_changelog(from, to, path) - from = IO.pread(%W"git log -n1 --format=format:%H" + - ["--grep=^ *git-svn-id: .*@#{from} "], - :chdir => @abs_srcdir) - to &&= IO.pread(%W"git log -n1 --format=format:%H" + - ["--grep=^ *git-svn-id: .*@#{to} "], - :chdir => @abs_srcdir) + range = [from, to].map do |rev| + rev or next + rev = IO.pread({'LANG' => 'C', 'LC_ALL' => 'C'}, + %W"git log -n1 --format=format:%H" << + "--grep=^ *git-svn-id: .*@#{rev} ", + :chdir => @abs_srcdir) + rev unless rev.empty? + end.join('..') IO.popen({'TZ' => 'JST-9', 'LANG' => 'C', 'LC_ALL' => 'C'}, - %W"git log --date=iso-local --topo-order #{from}..#{to}", + %W"git svn log --date=iso-local --topo-order #{range}", :chdir => @abs_srcdir) do |r| open(path, 'w') do |w| IO.copy_stream(r, w) -- cgit v1.2.3