namespace :hg do
def strategy @strategy ||= Capistrano::Hg.new(self, fetch(:hg_strategy, Capistrano::Hg::DefaultStrategy)) end desc "Check that the repo is reachable" task :check do on release_roles :all do strategy.check end end desc "Clone the repo to the cache" task :clone do on release_roles :all do if strategy.test info t(:mirror_exists, at: repo_path) else within deploy_path do strategy.clone end end end end desc "Pull changes from the remote repo" task update: :'hg:clone' do on release_roles :all do within repo_path do strategy.update end end end desc "Copy repo to releases" task create_release: :'hg:update' do on release_roles :all do within repo_path do strategy.release end end end desc "Determine the revision that will be deployed" task :set_current_revision do on release_roles :all do within repo_path do set :current_revision, strategy.fetch_revision end end end
end