From fec4b2225eb9764c4de260562806e76a1264c530 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 10 Dec 2018 01:58:27 +0000 Subject: Detection order * tool/vcs.rb (VCS.detect): detect each VCS while travarsing parent directories. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- tool/vcs.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'tool/vcs.rb') diff --git a/tool/vcs.rb b/tool/vcs.rb index ca9c8964b5..db3e5cf4bc 100644 --- a/tool/vcs.rb +++ b/tool/vcs.rb @@ -125,14 +125,13 @@ class VCS end def self.detect(path) - @@dirs.each do |dir, klass, pred| - curr = path - loop { + curr = path + begin + @@dirs.each do |dir, klass, pred| return klass.new(curr) if pred ? pred[curr, dir] : File.directory?(File.join(curr, dir)) - prev, curr = curr, File.realpath(File.join(curr, '..')) - break if curr == prev # stop at the root directory - } - end + end + prev, curr = curr, File.realpath(File.join(curr, '..')) + end until curr == prev # stop at the root directory raise VCS::NotFoundError, "does not seem to be under a vcs: #{path}" end -- cgit v1.2.3