module Capistrano::Git::SubmoduleStrategy
Public Instance Methods
check()
click to toggle source
# File lib/capistrano/git-submodule-strategy.rb, line 12 def check unless test!(:git, :'ls-remote', repo_url) context.error "Repo `#{repo_url}` does not exists" return false end if context.capture(:git, :'ls-remote', repo_url, fetch(:branch)).empty? context.error "Branch `#{fetch(:branch)}` not found in repo `#{repo_url}`" return false end true end
clone()
click to toggle source
# File lib/capistrano/git-submodule-strategy.rb, line 26 def clone git :clone, '--mirror', repo_url, repo_path end
release()
click to toggle source
put the working tree in a release-branch, make sure the submodules are up-to-date and copy everything to the release path
# File lib/capistrano/git-submodule-strategy.rb, line 37 def release return if context.test(:test, '-e', release_path) && context.test("ls -A #{release_path} | read linevar") git_version = context.capture(:git, '--version').strip.match('^git version (\d+(?:\.\d+)+)$') if git_version.nil? || git_version[1] < '2.3.0' git :clone, (fetch(:git_keep_meta, false) ? '' : '--depth=1'), '-b', fetch(:branch), "file://#{repo_path}", release_path context.within_only release_path do git :remote, 'set-url', 'origin', repo_url end else git :clone, "--reference #{repo_path}", '--dissociate', (fetch(:git_keep_meta, false) ? '' : '--depth=1'), '-b', fetch(:branch), repo_url, release_path end context.within_only release_path do git :submodule, 'update', '--init', '--recursive' end unless fetch(:git_keep_meta, false) verbose = Rake.application.options.trace ? 'v' : '' context.execute("find #{release_path} -name '.git*' | xargs -I {} rm -rf#{verbose} '{}'") end end
test()
click to toggle source
# File lib/capistrano/git-submodule-strategy.rb, line 8 def test test! " [ -f #{repo_path}/HEAD ] " end
update()
click to toggle source
# File lib/capistrano/git-submodule-strategy.rb, line 30 def update git :remote, :update end