summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-23 06:39:48 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-23 06:39:48 +0000
commit59641944e9902912fbbe81c57504f35d652b9ad6 (patch)
treeb2d29180c3254a197f553e9f190568bc8a19afc0 /tool
parent4347580354c256bad1112ec269853460ff8b0c78 (diff)
* 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
Diffstat (limited to 'tool')
-rw-r--r--tool/file2lastrev.rb16
1 files changed, 6 insertions, 10 deletions
diff --git a/tool/file2lastrev.rb b/tool/file2lastrev.rb
index f8f14705743..430aca6730a 100644
--- a/tool/file2lastrev.rb
+++ b/tool/file2lastrev.rb
@@ -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+)$/