Project

General

Profile

Bug #12239 ยป 0001-improve-git-repository-detection.patch

rhenium (Kazuki Yamaguchi), 03/31/2016 05:38 PM

View differences:

configure.in
:
elif svn info "$srcdir" > /dev/null 2>&1; then
VCS='svn'
elif test -d "$srcdir/.git/svn"; then
VCS='git svn'
elif test -d "$srcdir/.git"; then
VCS='git'
elif git_dir=`git --work-tree="$srcdir" --git-dir="$srcdir/.git" rev-parse --git-dir 2>/dev/null`; then
if test -d "$git_dir/svn"; then
VCS='git svn'
else
VCS='git'
fi
else
VCS='echo cannot'
fi
tool/change_maker.rb
#! ./miniruby
$:.unshift(File.expand_path("../../lib", __FILE__))
require File.expand_path("../vcs", __FILE__)
def diff2index(cmd, *argv)
lines = []
path = nil
......
lines.empty? ? nil : lines
end
if `svnversion` =~ /^\d+/
vcs = begin
VCS.detect(".")
rescue VCS::NotFoundError
nil
end
case vcs
when VCS::SVN
cmd = "svn diff --diff-cmd=diff -x-pU0"
change = diff2index(cmd, ARGV)
elsif File.directory?(".git")
when VCS::GIT
cmd = "git diff -U0"
change = diff2index(cmd, ARGV) || diff2index(cmd, "--cached", ARGV)
else
tool/vcs.rb
def self.detect(path)
@@dirs.each do |dir, klass, pred|
if pred ? pred[path, dir] : File.directory?(File.join(path, dir))
return klass.new(path)
end
prev = path
curr = path
loop {
curr = File.realpath(File.join(prev, '..'))
break if curr == prev # stop at the root directory
return klass.new(path) if File.directory?(File.join(curr, dir))
prev = curr
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
raise VCS::NotFoundError, "does not seem to be under a vcs: #{path}"
    (1-1/1)