Files

Libv8::Checkout

Public Instance Methods

check_git_svn!() click to toggle source
# File ext/libv8/checkout.rb, line 42
def check_git_svn!
  unless system 'git help svn 2>&1 > /dev/null'
    fail "git-svn not installed!\nPlease install git-svn."
  end
end
checkout!() click to toggle source
# File ext/libv8/checkout.rb, line 11
def checkout!
  # When compiling from a source gem, it's not a git repository anymore and
  # we assume the right code is already checked out.
  return unless git?(V8_Source)

  Dir.chdir(V8_Source) do
    `git fetch`
    `git checkout #{Libv8::VERSION.gsub(/\.\d+$/,'')} -f`
    `rm -f .applied_patches`
  end

  return unless git?(GYP_Source)

  check_git_svn!

  Dir.chdir(GYP_Source) do
    mkf = File.readlines(File.join(V8_Source, 'Makefile'))
    idx = mkf.index {|l| l =~ /#{GYP_SVN}/} + 1
    rev = /--revision (\d+)/.match(mkf[idx])[1]
    `git fetch`
    # --git-dir is needed for older versions of git and git-svn
    `git --git-dir=../../.git/modules/vendor/gyp/ svn init #{GYP_SVN} -Ttrunk`
    `git config --replace-all svn-remote.svn.fetch trunk:refs/remotes/origin/master`
    `git checkout $(git --git-dir=../../.git/modules/vendor/gyp/ svn find-rev r#{rev} | tail -n 1) -f`
  end
end
git?(dir) click to toggle source
# File ext/libv8/checkout.rb, line 38
def git?(dir)
  File.exists?(File.join(dir, '.git'))
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.