* tool/file2lastrev.rb: detects vcs directory properly on building

outside of srcdir. [ruby-dev:37555] [ruby-dev:37561]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
yugui 2008-12-23 06:39:48 +00:00
Родитель 4347580354
Коммит 59641944e9
2 изменённых файлов: 11 добавлений и 10 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Tue Dec 23 15:36:58 2008 Yuki Sonoda (Yugui) <yugui@yugui.jp>
* tool/file2lastrev.rb: detects vcs directory properly on building
outside of srcdir. [ruby-dev:37555] [ruby-dev:37561]
Tue Dec 23 15:30:02 2008 NAKAMURA Usaku <usa@ruby-lang.org>
* io.c (pipe_open): need to initialize args.

Просмотреть файл

@ -3,17 +3,13 @@
require 'optparse'
require 'pathname'
SRCDIR = Pathname(File.dirname($0)).parent.freeze
class VCSNotFoundError < RuntimeError; end
def detect_vcs(path)
target_path = Pathname(File.expand_path(path))
path = target_path.directory? ? target_path : target_path.parent
begin
return :svn, target_path.relative_path_from(path) if File.directory?("#{path}/.svn")
return :git, target_path.relative_path_from(path) if File.directory?("#{path}/.git")
path, orig = path.parent, path
end until path == orig
path = SRCDIR
return :svn, path.relative_path_from(SRCDIR) if File.directory?("#{path}/.svn")
return :git, path.relative_path_from(SRCDIR) if File.directory?("#{path}/.git")
raise VCSNotFoundError, "does not seem to be under a vcs"
end
@ -23,9 +19,9 @@ def get_revisions(path)
info = case vcs
when :svn
`svn info #{path}`
`cd '#{SRCDIR}' && svn info '#{path}'`
when :git
`git svn info #{path}`
`cd '#{SRCDIR}' && git svn info '#{path}'`
end
if info =~ /^Revision: (\d+)$/