--- Repository interface.
--  This class can used to examine a repository and gather statistics.

module "pepper.repository"


--- Returns the repository URL.
function url()

--- Returns the repository type.
--  This is actually the name of the current backend, e.g. "git",
--  "subversion" or "mercurial".
function type()

--- Determines and returns the current HEAD revision.
--  @param branch An optional branch name
function head(branch)

--- Returns the standard branch of the repository.
--  For working copies, this is the branch that is curently checked out.
function default_branch()

--- Determines and returns a table listing all branches.
function branches()

--- Determines and returns a table listing all tags as tag objects.
--  @see pepper.tag
function tags()

--- Returns a list of all files in the repository.
--  @param id Optional revision ID, defaults to current (i.e., the HEAD revision)
function tree(id)

--- Returns the contents of a given file.
--  @param file File path, relative to repository root
--  @param id Optional revision ID, defaults to current (i.e., the HEAD revision)
function cat(file, id)

--- Fetches a specific revision.
--  @param id The revision ID
--  @return The revision object
--  @see pepper.revision
function revision(id)

--- Returns a revision iterator for the given branch.
--  The following options will be added:
--  <table>
--  <tr><th>Key</th><th>Description</th><th>Default value</td></tr>
--  <tr><td>start</td><td>Minimum time stamp for commits</td><td>none</td></tr>
--  <tr><td>stop</td><td>Maximum time stamp for commits</td><td>none</td></tr>
--  <tr><td>prefetch</td><td>Turn pre-fetching of revisions on or off</td><td>true</td></tr>
--  </table>
--  @param branch The name of the branch
--  @param options Optional table with additional parameters
--  @see pepper.iterator
function iterator(branch, options)
