[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]