summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-09-29 20:03:51 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-09-30 10:39:42 +0900
commit5a5644dadcd5e00b571d0029af4d96849e254cd4 (patch)
treeb23d694057ed5497edbac0d4e01f95f7acf23735
parentf70ba9cf805dc58d993e60fe2bb06d6c5e2f08cb (diff)
Introduce `VCS::Null` for fallback
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/6473
-rwxr-xr-xtool/file2lastrev.rb16
-rw-r--r--tool/lib/vcs.rb15
-rwxr-xr-xtool/make-snapshot2
3 files changed, 18 insertions, 15 deletions
diff --git a/tool/file2lastrev.rb b/tool/file2lastrev.rb
index a3cdcf05c3..09cb959932 100755
--- a/tool/file2lastrev.rb
+++ b/tool/file2lastrev.rb
@@ -32,8 +32,8 @@ OptionParser.new {|opts|
rescue VCS::NotFoundError => e
abort "#{File.basename(Program)}: #{e.message}" unless @suppress_not_found
opts.remove
+ nil
end
- nil
end
opts.new
opts.on("--srcdir=PATH", "use PATH as source directory") do |path|
@@ -62,15 +62,11 @@ OptionParser.new {|opts|
opts.order! rescue abort "#{File.basename(Program)}: #{$!}\n#{opts}"
if vcs
vcs.set_options(vcs_options) # options after --srcdir
- else
- new_vcs["."]
+ elsif new_vcs["."]
+ else @suppress_not_found
+ (vcs = VCS::Null.new(nil)).set_options(vcs_options)
end
}
-unless vcs
- # Output only release_date when .git is missing
- puts VCS.release_date if @output == :revision_h
- exit
-end
output =
case @output
@@ -99,10 +95,6 @@ ok = true
begin
puts output[*vcs.get_revisions(arg)]
rescue => 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 d0301b92d8..8944189bce 100644
--- a/tool/lib/vcs.rb
+++ b/tool/lib/vcs.rb
@@ -98,7 +98,7 @@ class VCS
opts
end
- def self.release_date(time = Time.now - 10) # the same default as make-snapshot
+ def release_date(time)
t = time.utc
[
t.strftime('#define RUBY_RELEASE_YEAR %Y'),
@@ -246,7 +246,7 @@ class VCS
t = release_datetime.utc
code << t.strftime('#define RUBY_RELEASE_DATETIME "%FT%TZ"')
end
- code += VCS.release_date(release_date)
+ code += self.release_date(release_date)
code
end
@@ -775,4 +775,15 @@ class VCS
true
end
end
+
+ class Null < self
+ def get_revisions(path, srcdir = nil)
+ @modified ||= Time.now - 10
+ return nil, nil, @modified
+ end
+
+ def revision_header(last, release_date, release_datetime = nil, branch = nil, title = nil, limit: 20)
+ self.release_date(release_date)
+ end
+ end
end
diff --git a/tool/make-snapshot b/tool/make-snapshot
index 22ae360c3e..d9c0b125fa 100755
--- a/tool/make-snapshot
+++ b/tool/make-snapshot
@@ -295,7 +295,7 @@ def package(vcs, rev, destdir, tmp = nil)
if info = vcs.get_revisions(url)
modified = info[2]
else
- modified = Time.now - 10
+ _, _, modified = VCS::Null.new(nil).get_revisions(url)
end
if !revision and info
revision = info