swh.loader.mercurial.directory module#

swh.loader.mercurial.directory.clone_repository(repo_url: str, hg_changeset: str, target: Path) Path[source]#

Clone repo_url repository in the target directory at hg_changeset (mercurial changeset or tag).

This function can raise for various reasons. This is expected to be caught by the main loop in the loader.

Raises

NotFound: exception if the origin to ingest is not found

Returns

the local clone repository directory path

swh.loader.mercurial.directory.list_hg_tree(dirpath: bytes, dirname: bytes, entries: Iterable[Any]) bool[source]#

List a mercurial tree. This ignores any repo_path/.hg/* and empty folders.

class swh.loader.mercurial.directory.HgCheckoutLoader(*args, **kwargs)[source]#

Bases: BaseDirectoryLoader

Hg directory loader in charge of ingesting a mercurial tree at a specific changeset, tag or branch into the swh archive.

The output snapshot is of the form:

id: <bytes>
branches:
  HEAD:
    target_type: alias
    target: <mercurial-reference>
  <mercurial-reference>:
    target_type: directory
    target: <directory-id>
visit_type: str = 'hg-checkout'#
fetch_artifact() Iterator[Path][source]#

This fetches an artifact representation and yields its associated local representation (as Path). Depending on the implementation, this may yield contents coming from a remote location, or directories coming from tarball, svn tree, git tree, hg tree, …

Raises

NotFound if nothing is found; ValueError in case of mismatched checksums

build_snapshot() Snapshot[source]#

Build snapshot without losing the hg reference context.