git-stats 0.1.23

A tool for getting aggregated commit stats
<h1 align="center">
    📊<br>
    git stats
</h1>
<div align="center">
    <strong>A tool for getting aggregated commit stats.</strong>
</div>
<br>
<div align="center">
  <a href="https://github.com/lukehsiao/git-stats/actions/workflows/general.yml">
    <img src="https://img.shields.io/github/actions/workflow/status/lukehsiao/git-stats/general.yml" alt="Build Status">
  </a>
  <a href="https://crates.io/crates/git-stats">
    <img src="https://img.shields.io/crates/v/git-stats" alt="Version">
  </a>
  <a href="https://github.com/lukehsiao/git-stats/blob/main/LICENSE.md">
    <img src="https://img.shields.io/crates/l/git-stats" alt="License">
  </a>
</div>
<br>

Git Stats parses [log](https://git-scm.com/docs/git-log) information to get stats about the files changed, additions, and deletions.
For example:

```
$ git stats -r origin..HEAD
Author           Commits  Changed Files  Insertions  Deletions  Net Δ
Luke Hsiao            67            117       +2616      -1126  +1490
dependabot[bot]       31             62        +203       -267    -64
Total                 98            179       +2819      -1393  +1426

Reviewer/Tester  Commits
Luke Hsiao             1
```

## Install

This is a glorified shell script.
As such, it expects that you have `git`, `sort`, and `uniq` installed on your machine and in your `$PATH`.

### From crates.io

```
cargo install git-stats --locked
```

Or, if you use [`cargo-binstall`](https://github.com/cargo-bins/cargo-binstall):

```
cargo binstall git-stats
```

## Usage

```
A tool for getting aggregated commit stats

Usage: git-stats [OPTIONS] [revision-range]

Arguments:
  [revision-range]  Show only commits in the specified revision range [default: HEAD]

Options:
  -e, --email            Show the email address of each author
  -r, --reviews          Show who reviewed/tested commits based on `Acked-by`, `Tested-by`, and `Reviewed-by` git trailers
  -s, --sort <SORT>      What column to sort by [default: commits] [possible values: author, commits, files, insertions, deletions, net]
      --reverse          Whether to reverse the sorting from descending to ascending
  -a, --author <AUTHOR>  Limit the commits output to ones with author header lines that match the specified pattern (regular expression)
      --since <SINCE>    Limit the commits output to ones more recent than a specific date
      --until <UNTIL>    Limit the commits output to ones older than a specific date
  -h, --help             Print help (see more with '--help')
  -V, --version          Print version
```


## TODO

- [ ] It would be nice to support _all_ git log flags automatically, just passing them through directly and then doing the math only.