ruby-changes:73596
From: Takashi <ko1@a...>
Date: Sat, 17 Sep 2022 22:28:05 +0900 (JST)
Subject: [ruby-changes:73596] 33c6dd2cc8 (master): Fallback to VCS.release_date on VCS::NotFoundError
https://git.ruby-lang.org/ruby.git/commit/?id=33c6dd2cc8 From 33c6dd2cc89c27bbf406508ec39038a181fb99bc Mon Sep 17 00:00:00 2001 From: Takashi Kokubun <takashikkbn@g...> Date: Sat, 17 Sep 2022 22:24:09 +0900 Subject: Fallback to VCS.release_date on VCS::NotFoundError when -q is given. One of the RubyCI servers, freebsd12, had a broken git environment: ``` $ git show fatal: detected dubious ownership in repository at '/usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby' To add an exception for this directory, call: git config --global --add safe.directory /usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby ``` tool/lib/vcs.rb doesn't work normally for that server. Even for such cases, we'd like to generate a usable revision.h. So this patch lets revision.h fallback to default VCS.release_date when VCS::NotFoundError is raised. --- tool/file2lastrev.rb | 13 +++++++------ tool/lib/vcs.rb | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/tool/file2lastrev.rb b/tool/file2lastrev.rb index 476437a995..a3cdcf05c3 100755 --- a/tool/file2lastrev.rb +++ b/tool/file2lastrev.rb @@ -68,13 +68,11 @@ OptionParser.new {|opts| https://github.com/ruby/ruby/blob/trunk/tool/file2lastrev.rb#L68 } unless vcs # Output only release_date when .git is missing - if @output == :revision_h - puts VCS.release_date(Time.now - 10) # same as make-snapshot - end + puts VCS.release_date if @output == :revision_h exit end -@output = +output = case @output when :changed, nil Proc.new {|last, changed| @@ -99,9 +97,12 @@ end https://github.com/ruby/ruby/blob/trunk/tool/file2lastrev.rb#L97 ok = true (ARGV.empty? ? [nil] : ARGV).each do |arg| begin - puts @output[*vcs.get_revisions(arg)] + puts output[*vcs.get_revisions(arg)] rescue => e - next if @suppress_not_found and VCS::NotFoundError === e + if @suppress_not_found and VCS::NotFoundError === e + puts VCS.release_date if @output == :revision_h + next + end warn "#{File.basename(Program)}: #{e.message}" ok = false end diff --git a/tool/lib/vcs.rb b/tool/lib/vcs.rb index d33d41dba1..29f2327bc3 100644 --- a/tool/lib/vcs.rb +++ b/tool/lib/vcs.rb @@ -95,7 +95,7 @@ class VCS https://github.com/ruby/ruby/blob/trunk/tool/lib/vcs.rb#L95 opts end - def self.release_date(time) + def self.release_date(time = Time.now - 10) # the same default as make-snapshot t = time.utc [ t.strftime('#define RUBY_RELEASE_YEAR %Y'), -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/