Metadata-Version: 2.1
Name: swh.loader.mercurial
Version: 0.0.23
Summary: Software Heritage Mercurial Loader
Home-page: https://forge.softwareheritage.org/diffusion/DLDHG/
Author: Software Heritage developers
Author-email: swh-devel@inria.fr
License: UNKNOWN
Project-URL: Bug Reports, https://forge.softwareheritage.org/maniphest
Project-URL: Funding, https://www.softwareheritage.org/donate
Project-URL: Source, https://forge.softwareheritage.org/source/swh-loader-mercurial
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 4 - Beta
Description-Content-Type: text/markdown
Requires-Dist: billiard
Requires-Dist: click
Requires-Dist: patool
Requires-Dist: python-dateutil
Requires-Dist: python-hglib
Requires-Dist: retrying
Requires-Dist: sqlitedict
Requires-Dist: vcversioner
Requires-Dist: swh.model (>=0.0.27)
Requires-Dist: swh.storage (>=0.0.114)
Requires-Dist: swh.scheduler (>=0.0.39)
Requires-Dist: swh.loader.core (>=0.0.43)
Provides-Extra: testing
Requires-Dist: pytest ; extra == 'testing'
Requires-Dist: pytest-mock ; extra == 'testing'
Requires-Dist: swh.core[http] (>=0.0.61) ; extra == 'testing'
Requires-Dist: swh.scheduler[testing] ; extra == 'testing'

swh-loader-mercurial
=========================

# Configuration file

In usual location for a loader, *{/etc/softwareheritage/ | ~/.swh/ |
~/.config/swh/}loader/hg.yml*:

``` YAML
storage:
  cls: remote
  args:
    url: http://localhost:5002/
```

# Basic use

The main entry point to import a Mercurial repository is the `main` function
defined in the `swh.loader.mercurial.cli` module:

``` bash
python3 -m swh.loader.mercurial.cli
```


If the Python package has been installed via `pip`, you should be able
to type:

``` bash
user@host:~$ swh-loader-hg --help

Usage: swh-loader-hg [OPTIONS] ORIGIN_URL

Options:
  -d, --hg-directory TEXT         Path to the hg (local) directory to load
                                  from. If unset, the hg repo will ben cloned
                                  from the given (origin) url
  -a, --hg-archive TEXT           Path to the hg (local) archive file to load
                                  from.
  -D, --visit-date TEXT           Visit date (defaults to now)
  -l, --log-level [NOTSET|DEBUG|INFO|WARNING|ERROR|CRITICAL]
                                  Log level
  --help                          Show this message and exit.

```

For example:

``` bash
user@host:~$ swh-loader-hg https://www.mercurial-scm.org/repo/hello
[...]
```


# From Python
From python3's toplevel:

## Remote

``` Python
project = 'hello'
# remote repository
origin_url = 'https://www.mercurial-scm.org/repo/%s' % project
# local clone
directory = '/home/storage/hg/repo/%s' % project

import logging
logging.basicConfig(level=logging.DEBUG)

from swh.loader.mercurial.tasks import LoadMercurial

t = LoadMercurial()
t.run(origin_url=origin_url, directory=directory, visit_date='2016-05-03T15:16:32+00:00')
```

## local directory

Only origin, contents, and directories are filled so far.

Remaining objects are empty (revision, release, occurrence).

``` Python
project = '756015-ipv6'
directory = '/home/storage/hg/repo/%s' % project
origin_url = 'https://%s.googlecode.com' % project

import logging
logging.basicConfig(level=logging.DEBUG)

from swh.loader.mercurial.tasks import LoadMercurial

t = LoadMercurial()
t.run(origin_url=origin_url, directory=directory, visit_date='2016-05-03T15:16:32+00:00')
```

## local archive

``` Python
project = '756015-ipv6-source-archive.zip'
archive_path = '/home/storage/hg/repo/%s' % project
origin_url = 'https://%s-archive.googlecode.com' % project

import logging
logging.basicConfig(level=logging.DEBUG)

from swh.loader.mercurial.tasks import LoadArchiveMercurial

t = LoadArchiveMercurial()
t.run(origin_url=origin_url, archive_path=archive_path, visit_date='2016-05-03T15:16:32+00:00')
```


