docs/api.rst @ 959fb4d581f6 initial-docs

docs/api: add the repo layout in ascii art
author Steve Losh <steve@stevelosh.com>
date Mon, 12 Jul 2010 23:38:39 -0400
parents 6c9b5986c7e1
children 22f23f51ce59
API
===

hg-review takes Mercurial's approach to API stability:

* The command line interface is fairly stable and will not break often.
* File formats will not change often.
* The internal implementation may change frequently -- there are no guarantees
  of stability.

Providing a stable CLI means that (possibly non-GPL) programs can interact with
hg-review easily without fear of constant breaking.

Stable file formats mean that older versions of hg-review will be able to work
with review data from newer versions (albeit with reduced functionality).

*Not* providing a stable internal implementation allows hg-review's code to be
kept clean and elegant. It means that Python programs will needs to use
subprocesses to avoid breaking, but this is a tradeoff that the author feels is
worth making.

Data Repository Layout
----------------------

The structure of hg-review's data repository looks like this::

    your-project/
    |
    +-- .hg/
    |   |
    |   +-- review
    |   |   |
    |   |   +-- {{ changeset hash }}
    |   |   |   |
    |   |   |   +-- .exists
    |   |   |   |
    |   |   |   +-- comments
    |   |   |   |   |
    |   |   |   |   +-- {{ comment hash }}
    |   |   |   |   |
    |   |   |   |   `-- other comments...
    |   |   |   |
    |   |   |   +-- signoffs
    |   |   |       |
    |   |   |       +-- {{ signoff hash }}
    |   |   |       |
    |   |   |       `-- other signoffs ...
    |   |   |
    |   |   `-- other changesets ...
    |   |
    |   `-- other files ...
    |
    `-- other files ...

File Formats
------------

Command Line Interface
----------------------

Python API
----------