Issue #8877 has been reported by hasari (Hiro Asari).

----------------------------------------
Bug #8877: OptionParser::Version should not rely on SVN
https://bugs.ruby-lang.org/issues/8877

Author: hasari (Hiro Asari)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.1.0dev (2013-08-02 trunk 42320) [x86_64-darwin12.4.0]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


=begin
Currently, (({OptionParser::Version})) is ((<defined|URL:https://github.com/ruby/ruby/blob/2b44bbf/lib/optparse.rb#L215-L216>)) by:

  RCSID = %w$Id$[1..-1].each {|s| s.freeze}.freeze
  Version = (RCSID[1].split('.').collect {|s| s.to_i}.extend(Comparable).freeze if RCSID[1])

This assumes that before this file is invoked, something preprocesses this file and rewrites (({$Id$})). This is not the case with (({git})).

As a result, if you build from the git clone, you'd get

  irb(main):001:0> RUBY_DESCRIPTION
  => "ruby 2.1.0dev (2013-08-02 trunk 42320) [x86_64-darwin12.4.0]"
  irb(main):002:0> require 'optparse'
  => true
  irb(main):003:0> OptionParser::Version
  => nil

While I understand the history of the development process and Ruby core's professed affinity for SVN, but this strikes me as a very bad idea.

=end


-- 
http://bugs.ruby-lang.org/