From a205e24747497391390ef7c004293a8a7934dd96 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 22 May 2019 23:18:37 +0900 Subject: Make RUBY_REVISION full length --- tool/file2lastrev.rb | 4 +++- tool/vcs.rb | 21 ++++++++++++++++++--- version.c | 2 +- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/tool/file2lastrev.rb b/tool/file2lastrev.rb index 58ff354d3d..24fbaeb0d7 100755 --- a/tool/file2lastrev.rb +++ b/tool/file2lastrev.rb @@ -45,6 +45,7 @@ parser = OptionParser.new {|opts| } parser.parse! rescue abort "#{File.basename(Program)}: #{$!}\n#{parser}" +vcs = nil @output = case @output when :changed, nil @@ -54,7 +55,8 @@ parser.parse! rescue abort "#{File.basename(Program)}: #{$!}\n#{parser}" when :revision_h Proc.new {|last, changed, modified, branch, title| [ - "#define RUBY_REVISION #{last.dump}", + "#define RUBY_REVISION #{vcs.short_revision(last).dump}", + "#define RUBY_FULL_REVISION #{last.dump}", if branch e = '..' limit = 16 diff --git a/tool/vcs.rb b/tool/vcs.rb index f251c96ecb..34bafa72ac 100644 --- a/tool/vcs.rb +++ b/tool/vcs.rb @@ -224,6 +224,10 @@ class VCS self.class.revision_name(rev) end + def short_revision(rev) + self.class.short_revision(rev) + end + class SVN < self register(".svn") COMMAND = ENV['SVN'] || 'svn' @@ -232,6 +236,10 @@ class VCS "r#{rev}" end + def self.short_revision(rev) + rev + end + def self.get_revisions(path, srcdir = nil) if srcdir and local_path?(path) path = File.join(srcdir, path) @@ -392,10 +400,9 @@ class VCS def self.get_revisions(path, srcdir = nil) gitcmd = [COMMAND] - last = cmd_read_at(srcdir, [[*gitcmd, 'rev-parse', '--short=10', 'HEAD']]).rstrip + last = cmd_read_at(srcdir, [[*gitcmd, 'rev-parse', 'HEAD']]).rstrip log = cmd_read_at(srcdir, [[*gitcmd, 'log', '-n1', '--date=iso', *path]]) changed = log[/\Acommit (\h+)/, 1] - changed = changed[0, last.size] modified = log[/^Date:\s+(.*)/, 1] branch = cmd_read_at(srcdir, [gitcmd + %W[symbolic-ref --short HEAD]]) if branch.empty? @@ -413,7 +420,11 @@ class VCS end def self.revision_name(rev) - rev + short_revision(rev) + end + + def self.short_revision(rev) + rev[0, 10] end def initialize(*) @@ -533,6 +544,10 @@ class VCS SVN.revision_name(rev) end + def self.short_revision(rev) + SVN.short_revision(rev) + end + def format_changelog(r, path) open(path, 'w') do |w| sep = "-"*72 diff --git a/version.c b/version.c index 6b96dee377..660f6717e2 100644 --- a/version.c +++ b/version.c @@ -33,7 +33,7 @@ const int ruby_api_version[] = { STRINGIZE(RUBY_VERSION_MINOR) "." \ STRINGIZE(RUBY_VERSION_TEENY) "" const char ruby_version[] = RUBY_VERSION; -const char ruby_revision[] = RUBY_REVISION; +const char ruby_revision[] = RUBY_FULL_REVISION; const char ruby_release_date[] = RUBY_RELEASE_DATE; const char ruby_platform[] = RUBY_PLATFORM; const int ruby_patchlevel = RUBY_PATCHLEVEL; -- cgit v1.2.1