hg – Manages Mercurial (hg) repositories

Synopsis

  • Manages Mercurial (hg) repositories. Supports SSH, HTTP/S and local address.

Parameters

Parameter Choices/Defaults Comments
clone
boolean
added in 2.3
    Choices:
  • no
  • yes ←
If no, do not clone the repository if it does not exist locally.
dest
- / required
Absolute path of where the repository should be cloned to. This parameter is required, unless clone and update are set to no
executable
-
Path to hg executable to use. If not supplied, the normal mechanism for resolving binary paths will be used.
force
boolean
    Choices:
  • no ←
  • yes
Discards uncommitted changes. Runs hg update -C. Prior to 1.9, the default was `yes`.
purge
boolean
    Choices:
  • no ←
  • yes
Deletes untracked files. Runs hg purge.
repo
- / required
The repository address.

aliases: name
revision
-
Equivalent -r option in hg command which could be the changeset, revision number, branch name or even tag.

aliases: version
update
boolean
added in 2.0
    Choices:
  • no
  • yes ←
If no, do not retrieve new revisions from the origin repository

Notes

Note

  • This module does not support push capability. See https://github.com/ansible/ansible/issues/31156.

  • If the task seems to be hanging, first verify remote host is in known_hosts. SSH will prompt user to authorize the first contact with a remote host. To avoid this prompt, one solution is to add the remote host public key in /etc/ssh/ssh_known_hosts before calling the hg module, with the following command: ssh-keyscan remote_host.com >> /etc/ssh/ssh_known_hosts.

  • As per 01 Dec 2018, Bitbucket has dropped support for TLSv1 and TLSv1.1 connections. As such, if the underlying system still uses a Python version below 2.7.9, you will have issues checking out bitbucket repositories. See https://bitbucket.org/blog/deprecating-tlsv1-tlsv1-1-2018-12-01.

Examples

- name: Ensure the current working copy is inside the stable branch and deletes untracked files if any.
  hg:
    repo: https://bitbucket.org/user/repo1
    dest: /home/user/repo1
    revision: stable
    purge: yes

- name: Get information about the repository whether or not it has already been cloned locally.
  hg:
    repo: git://bitbucket.org/user/repo
    dest: /srv/checkout
    clone: no
    update: no

Status

Authors

  • Yeukhon Wong (@yeukhon)

Hint

If you notice any issues in this documentation you can edit this document to improve it.