Class: Capistrano::SCM::Hg
Instance Method Summary
collapse
Methods inherited from Plugin
#scm?
Methods inherited from Plugin
#set_defaults
Methods included from DSL
#execute, #invoke, #invoke!, #local_user, #lock, #on, #revision_log_message, #rollback_log_message, #run_locally, #scm, #sudo, #t
#stage_definitions, #stage_set?, #stages
Methods included from DSL::Paths
#asset_timestamp, #current_path, #deploy_config_path, #deploy_path, #deploy_to, #join_paths, #linked_dir_parents, #linked_dirs, #linked_file_dirs, #linked_files, #map_dirnames, #now, #release_path, #releases_path, #repo_path, #repo_url, #revision_log, #set_release_path, #shared_path, #stage_config_path
Methods included from DSL::Env
#asset_timestamp, #env, #release_roles, #release_timestamp, #role_properties, #roles
#after, #before, #default_tasks, #define_remote_file_task, #deploying?, #ensure_stage, #exit_deploy_because_of_exception, #tasks_without_stage_dependency
Instance Method Details
#archive_to_release_path ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/capistrano/scm/hg.rb', line 36
def archive_to_release_path
if (tree = fetch(:repo_tree))
tree = tree.slice %r#^/?(.*?)/?$#, 1
components = tree.split("/").size
temp_tar = "#{fetch(:tmp_dir)}/#{SecureRandom.hex(10)}.tar"
hg "archive -p . -I", tree, "--rev", fetch(:branch), temp_tar
backend.execute :mkdir, "-p", release_path
backend.execute :tar, "-x --strip-components #{components} -f", temp_tar, "-C", release_path
backend.execute :rm, temp_tar
else
hg "archive", release_path, "--rev", fetch(:branch)
end
end
|
#check_repo_is_reachable ⇒ Object
24
25
26
|
# File 'lib/capistrano/scm/hg.rb', line 24
def check_repo_is_reachable
hg "id", repo_url
end
|
#clone_repo ⇒ Object
28
29
30
|
# File 'lib/capistrano/scm/hg.rb', line 28
def clone_repo
hg "clone", "--noupdate", repo_url, repo_path.to_s
end
|
#define_tasks ⇒ Object
11
12
13
|
# File 'lib/capistrano/scm/hg.rb', line 11
def define_tasks
eval_rakefile File.expand_path("../tasks/hg.rake", __FILE__)
end
|
#fetch_revision ⇒ Object
52
53
54
|
# File 'lib/capistrano/scm/hg.rb', line 52
def fetch_revision
backend.capture(:hg, "log --rev #{fetch(:branch)} --template \"{node}\n\"")
end
|
#hg(*args) ⇒ Object
15
16
17
18
|
# File 'lib/capistrano/scm/hg.rb', line 15
def hg(*args)
args.unshift(:hg)
backend.execute(*args)
end
|
#register_hooks ⇒ Object
5
6
7
8
9
|
# File 'lib/capistrano/scm/hg.rb', line 5
def register_hooks
after "deploy:new_release_path", "hg:create_release"
before "deploy:check", "hg:check"
before "deploy:set_current_revision", "hg:set_current_revision"
end
|
#repo_mirror_exists? ⇒ Boolean
20
21
22
|
# File 'lib/capistrano/scm/hg.rb', line 20
def repo_mirror_exists?
backend.test " [ -d #{repo_path}/.hg ] "
end
|
#update_mirror ⇒ Object
32
33
34
|
# File 'lib/capistrano/scm/hg.rb', line 32
def update_mirror
hg "pull"
end
|