lib/capistrano/scm/tasks/hg.rake
# TODO: this is nearly identical to git.rake. DRY up?
# This trick lets us access the Hg plugin within `on` blocks.
hg_plugin = self
namespace :hg do
desc "Check that the repo is reachable"
task :check do
on release_roles :all do
hg_plugin.check_repo_is_reachable
end
end
desc "Clone the repo to the cache"
task :clone do
on release_roles :all do
if hg_plugin.repo_mirror_exists?
info t(:mirror_exists, at: repo_path)
else
within deploy_path do
hg_plugin.clone_repo
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
hg_plugin.update_mirror
end
end
end
desc "Copy repo to releases"
task create_release: :'hg:update' do
on release_roles :all do
within repo_path do
hg_plugin.archive_to_release_path
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, hg_plugin.fetch_revision
end
end
end
end