protocol

# `git_protocol`

Predicates for accessing a git project current branch and latest commit data.

Availability:
`logtalk_load(git(loader))`
Author: Paulo Moura
Version: 1:1:0
Date: 2022-01-21
Compilation flags:
`static`
Dependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)

## Public predicates

### `branch/2`

Returns the name of the current git branch. Fails if the directory is not a git repo or a sub-directory of a git repo directory.

Compilation flags:
`static`
Template:
`branch(Directory,Branch)`
Mode and number of proofs:
`branch(+atom,?atom)` - `zero_or_one`

### `commit_author/2`

Returns the latest commit author. Fails if the directory is not a git repo or a sub-directory of a git repo directory.

Compilation flags:
`static`
Template:
`commit_author(Directory,Author)`
Mode and number of proofs:
`commit_author(+atom,-atom)` - `zero_or_one`

### `commit_date/2`

Returns the latest commit date (strict ISO 8601 format). Fails if the directory is not a git repo or a sub-directory of a git repo directory.

Compilation flags:
`static`
Template:
`commit_date(Directory,Date)`
Mode and number of proofs:
`commit_date(+atom,-atom)` - `zero_or_one`

### `commit_hash/2`

Returns the latest commit hash. Fails if the directory is not a git repo or a sub-directory of a git repo directory.

Compilation flags:
`static`
Template:
`commit_hash(Directory,Hash)`
Mode and number of proofs:
`commit_hash(+atom,-atom)` - `zero_or_one`

### `commit_hash_abbreviated/2`

Returns the latest commit abbreviated hash. Fails if the directory is not a git repo or a sub-directory of a git repo directory.

Compilation flags:
`static`
Template:
`commit_hash_abbreviated(Directory,Hash)`
Mode and number of proofs:
`commit_hash_abbreviated(+atom,-atom)` - `zero_or_one`

### `commit_message/2`

Returns the latest commit message. Fails if the directory is not a git repo or a sub-directory of a git repo directory.

Compilation flags:
`static`
Template:
`commit_message(Directory,Message)`
Mode and number of proofs:
`commit_message(+atom,-atom)` - `zero_or_one`

### `commit_log/3`

Returns the git latest commit log output for the given format (see e.g. https://git-scm.com/docs/pretty-formats). Fails if the directory is not a git repo or a sub-directory of a git repo directory.

Compilation flags:
`static`
Template:
`commit_log(Directory,Format,Output)`
Mode and number of proofs:
`commit_log(+atom,+atom,-atom)` - `zero_or_one`

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)