Compare commits

...

16 Commits

Author SHA1 Message Date
Lukáš Mešťan
17fc8f326c Merge pull request #81 from lightopenid/gh-68
update travis yml
2019-10-13 17:49:01 +02:00
Lukas Mestan
d5c17e43c0 update travis yml 2019-10-13 17:44:51 +02:00
Lukáš Mešťan
75c8bdc0de Merge pull request #80 from ProcrastinatorCp/gh-70
Support commits by co-authors
2019-10-13 17:41:05 +02:00
Lukáš Mešťan
1a9be34f4c Update .travis.yml 2019-10-13 17:30:01 +02:00
Chandra Prakash
4979eaa69f Support commits by co-authors
https://github.com/arzzen/git-quick-stats/issues/70

Commits by multiple authors (co-authored-by) were only counted towards main author.
Modified commitsPerAuthor() to include co-author's commits.
2019-10-13 02:16:54 +08:00
Lukáš Mešťan
1ed838f532 Merge pull request #79 from tomice/master
Updating README.md
2019-10-10 14:26:04 +02:00
Tom Ice
0fd9171e11 Adding info on how to exclude files in the docs
* Added information in the README.md to show how to exclude files
  from the stats by utilizing git pathspec
* Updated the built-in help, manpage, and tests to reflect how git
  pathspec can be utilized on files and folders
* Removed the \r tokens that were put in README.md from Windows

Fixes #61
2019-10-10 08:15:42 -04:00
Lukáš Mešťan
b14f364b6a Update FUNDING.yml 2019-10-10 08:08:18 +00:00
Tom Ice
10ad00bcbb Updating README.md
* Added info that demonstrates this utility has the ability to
  choose between running this as "git-quick-stats" or
  "git quick-stats" as requested in Issue #77
* Adjusted Table of Contents to show all sections and subsections
  of the README.md
* Cleaned up some grammar and added some extra info in various
  places
* Ran through VS Code's markdownlint extension and adjusted some
  syntax accordingly
2019-10-09 13:44:52 -04:00
Lukáš Mešťan
539f49bb68 Merge pull request #74 from jorgesumle/master
Update text errors from README.md
2019-09-18 12:21:07 +02:00
Jorge Maldonado Ventura
10bc3106f6 Update text errors from README.md
Hyphens are necessary for compound adjectives
2019-09-18 11:21:05 +02:00
Lukáš Mešťan
7160e3c39d Update README.md 2019-09-17 18:10:16 +02:00
Lukáš Mešťan
f17cbd0ff7 Merge pull request #72 from keur/makefile_destdir
make: Use DESTDIR
2019-08-12 09:42:07 +02:00
Kevin Kuehler
a3cd429850 make: Use DESTDIR
This is more standard than forcing the user to specify the destination
directory as part of PREFIX.
2019-08-11 13:59:33 -07:00
Lukáš Mešťan
e069deaf8a Update FUNDING.yml 2019-06-07 19:01:29 +02:00
Lukáš Mešťan
b1285b828e Create FUNDING.yml 2019-05-28 08:47:17 +00:00
7 changed files with 135 additions and 71 deletions

4
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,4 @@
# These are supported funding model platforms
github: [arzzen]
open_collective: git-quick-stats

View File

@@ -11,8 +11,6 @@ addons:
- cmake - cmake
install: install:
- git checkout ${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}
- git branch --set-upstream-to origin/$TRAVIS_BRANCH
- git rev-parse HEAD - git rev-parse HEAD
script: make test script: make test

View File

@@ -1,4 +1,7 @@
PREFIX ?= /usr/local PREFIX ?= /usr/local
_INSTDIR ?= $(DESTDIR)$(PREFIX)
BINDIR ?= $(_INSTDIR)/bin
MANDIR ?= $(_INSTDIR)/share/man
TASK_DONE = echo -e "\n✓ $@ done\n" TASK_DONE = echo -e "\n✓ $@ done\n"
.PHONY: test .PHONY: test
@@ -15,14 +18,14 @@ help:
@$(TASK_DONE) @$(TASK_DONE)
install: install:
install -d -m 0755 $(PREFIX)/bin install -d -m 0755 $(BINDIR)
install -m 0755 git-quick-stats $(PREFIX)/bin/git-quick-stats install -m 0755 git-quick-stats $(BINDIR)/git-quick-stats
$(MAKE) man $(MAKE) man
@$(TASK_DONE) @$(TASK_DONE)
uninstall: uninstall:
rm -f $(PREFIX)/bin/git-quick-stats rm -f $(BINDIR)/git-quick-stats
rm -f $(PREFIX)/share/man/man1/git-quick-stats.1 rm -f $(MANDIR)/man1/git-quick-stats.1
@$(TASK_DONE) @$(TASK_DONE)
reinstall: reinstall:
@@ -32,8 +35,8 @@ reinstall:
@$(TASK_DONE) @$(TASK_DONE)
man: man:
install -d -m 0755 $(PREFIX)/share/man/man1/ install -d -m 0755 $(MANDIR)/man1/
install -m 0644 git-quick-stats.1 $(PREFIX)/share/man/man1/ install -m 0644 git-quick-stats.1 $(MANDIR)/man1/
test: test:
tests/commands_test.sh tests/commands_test.sh

143
README.md
View File

@@ -1,37 +1,52 @@
## GIT quick statistics [![Backers on Open Collective](https://opencollective.com/git-quick-stats/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/git-quick-stats/sponsors/badge.svg)](#sponsors) [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Simple%20and%20efficient%20way%20to%20access%20various%20statistics%20in%20git%20repository&url=https://github.com/arzzen/git-quick-stat&via=arzzen&hashtags=git,stats,tool,statistics,developers) [![Travis](https://api.travis-ci.org/arzzen/git-quick-stats.svg?branch=master)](https://travis-ci.org/arzzen/git-quick-stats) [![Homebrew package](https://repology.org/badge/version-for-repo/homebrew/git-quick-stats.svg)](http://braumeister.org/formula/git-quick-stats) [![Linuxbrew package](https://repology.org/badge/version-for-repo/linuxbrew/git-quick-stats.svg)](https://repology.org/metapackage/git-quick-stats/packages) # GIT quick statistics [![Backers on Open Collective](https://opencollective.com/git-quick-stats/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/git-quick-stats/sponsors/badge.svg)](#sponsors) [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Simple%20and%20efficient%20way%20to%20access%20various%20statistics%20in%20git%20repository&url=https://github.com/arzzen/git-quick-stat&via=arzzen&hashtags=git,stats,tool,statistics,developers) [![Travis](https://api.travis-ci.org/arzzen/git-quick-stats.svg?branch=master)](https://travis-ci.org/arzzen/git-quick-stats) [![Homebrew package](https://repology.org/badge/version-for-repo/homebrew/git-quick-stats.svg)](http://braumeister.org/formula/git-quick-stats) [![Linuxbrew package](https://repology.org/badge/version-for-repo/linuxbrew/git-quick-stats.svg)](https://repology.org/metapackage/git-quick-stats/packages)
> `git-quick-stats` is a simple and efficient way to access various statistics in git repository. > `git-quick-stats` is a simple and efficient way to access various statistics in a git repository.
>
> Any git repository contains tons of information about commits, contributors, and files. Extracting this information is not always trivial, mostly because of a gadzillion options to a gadzillion git commands I dont think there is a single person alive who knows them all. Probably not even [Linus Torvalds](https://github.com/torvalds) himself :). > Any git repository may contain tons of information about commits, contributors, and files. Extracting this information is not always trivial, mostly because there are a gadzillion options to a gadzillion git commands I dont think there is a single person alive who knows them all. Probably not even [Linus Torvalds](https://github.com/torvalds) himself :).
![mainMenuScreenshot](https://user-images.githubusercontent.com/8818630/58364013-61e53800-7e7b-11e9-87f9-790d6744fbd5.png) ![mainMenuScreenshot](https://user-images.githubusercontent.com/8818630/58364013-61e53800-7e7b-11e9-87f9-790d6744fbd5.png)
## Table of Contents ## Table of Contents
[**Screenshots**](#screenshots) [**Screenshots**](#screenshots)
[**Installation**](#installation)
* [**Unix OS**](#unix-like-os)
* [**OS X**](#os-x-homebrew)
* [**Windows**](#windows-cygwin)
[**Usage**](#usage) [**Usage**](#usage)
* [**Git log since/until**](#git-log-since-until)
* [**Interactive**](#interactive)
* [**Non-interactive**](#non-interactive)
* [**Command-line arguments**](#command-line-arguments)
* [**Git log since and until**](#git-log-since-and-until)
* [**Git log limit**](#git-log-limit) * [**Git log limit**](#git-log-limit)
* [**Git pathspec**](#git-pathspec) * [**Git pathspec**](#git-pathspec)
* [**Tests**](#tests) * [**Color themes**](#color-themes)
[**Installation**](#installation)
* [**UNIX and Linux**](#unix-and-linux)
* [**macOS**](#macos-homebrew)
* [**Windows**](#windows)
[**System requirements**](#system-requirements) [**System requirements**](#system-requirements)
* [**Dependences**](#dependences)
[**Contribution**](#contribution) * [**Dependencies**](#dependencies)
[**FAQ**](#faq) [**FAQ**](#faq)
[**License**](#licensing) [**Contribution**](#contribution)
* [**Code reviews**](#code-reviews)
* [**Some tips for good pull requests**](#some-tips-for-good-pull-requests)
* [**Formatting**](#formatting)
[**Tests**](#tests)
[**Licensing**](#licensing)
[**Contributors**](#contributors)
* [**Backers**](#backers)
* [**Sponsors**](#sponsors)
## Screenshots ## Screenshots
@@ -39,20 +54,41 @@
![commitsByHourScreenshot](https://user-images.githubusercontent.com/8818630/58364010-61e53800-7e7b-11e9-8711-a40b50aebf52.png) ![commitsByHourScreenshot](https://user-images.githubusercontent.com/8818630/58364010-61e53800-7e7b-11e9-8711-a40b50aebf52.png)
## Usage ## Usage
### Interactive
git-quick-stats has a built-in interactive menu that can be executed as such:
```bash ```bash
git-quick-stats git-quick-stats
``` ```
Or you can use (non-interactive) direct execution: Or
`git-quick-stats <optional-command-to-execute-directly>` ```bash
git quick-stats
```
### Non-interactive
For those who prefer to utilize command-line options, `git-quick-stats` also has a non-interactive mode supporting both short and long options:
```bash
git-quick-stats <optional-command-to-execute-directly>
```
Or
```bash
git quick-stats <optional-command-to-execute-directly>
```
### Command-line arguments
Possible arguments in short and long form: Possible arguments in short and long form:
``` ```bash
-r, --suggest-reviewers -r, --suggest-reviewers
show the best people to contact to review code show the best people to contact to review code
-T, --detailed-git-stats -T, --detailed-git-stats
@@ -89,46 +125,52 @@ Possible arguments in short and long form:
display this help text in the terminal display this help text in the terminal
``` ```
#### Git log since / until ### Git log since and until
You can set variable `_GIT_SINCE`, `_GIT_UNTIL` and limit the git log You can set the variables `_GIT_SINCE` and/or `_GIT_UNTIL` before running `git-quick-stats` to limit the git log. These work similar to git's built-in `--since` and `--until` log options.
```bash ```bash
export _GIT_SINCE="2017-01-20" export _GIT_SINCE="2017-01-20"
export _GIT_UNTIL="2017-01-22" export _GIT_UNTIL="2017-01-22"
``` ```
then run `git quick-stats` (affect all stats, except "My daily status" and "Git changelogs" ) Once set, run `git quick-stats` as normal. Note that this affects all stats that parse the git log history until unset.
### Git log limit
#### Git log limit You can set variable `_GIT_LIMIT` for limited output. It will affect the "changelogs" and "branch tree" options.
You can set variable `_GIT_LIMIT` for limited output (it will affect: "Git changelogs" and "Branch tree view" )
```bash ```bash
export _GIT_LIMIT=20 export _GIT_LIMIT=20
``` ```
#### Git pathspec ### Git pathspec
You can exclude directory from the stats by using [pathspec](https://git-scm.com/docs/gitglossary#gitglossary-aiddefpathspecapathspec) You can exclude a directory from the stats by using [pathspec](https://git-scm.com/docs/gitglossary#gitglossary-aiddefpathspecapathspec)
```bash ```bash
export _GIT_PATHSPEC=':!directory' export _GIT_PATHSPEC=':!directory'
``` ```
#### Color themes You can also exclude files from the stats. Note that it works with any alphanumeric, glob, or regex that git respects.
```bash
export _GIT_PATHSPEC=':!package-lock.json'
```
### Color themes
You can change to the legacy color scheme by toggling the variable `_MENU_THEME` between `default` and `legacy` You can change to the legacy color scheme by toggling the variable `_MENU_THEME` between `default` and `legacy`
```bash ```bash
export _MENU_THEME=legacy export _MENU_THEME=legacy
``` ```
![legacyThemeScreenshot](https://user-images.githubusercontent.com/8818630/58364012-61e53800-7e7b-11e9-910a-aaff836260eb.png) ![legacyThemeScreenshot](https://user-images.githubusercontent.com/8818630/58364012-61e53800-7e7b-11e9-910a-aaff836260eb.png)
## Installation ## Installation
#### Unix like OS ### UNIX and Linux
```bash ```bash
git clone https://github.com/arzzen/git-quick-stats.git && cd git-quick-stats git clone https://github.com/arzzen/git-quick-stats.git && cd git-quick-stats
@@ -147,24 +189,29 @@ For update/reinstall
sudo make reinstall sudo make reinstall
``` ```
#### OS X (homebrew) ### macOS (homebrew)
```bash ```bash
brew install git-quick-stats brew install git-quick-stats
``` ```
#### Windows (cygwin) Or you can follow the UNIX and Linux instructions if you wish.
### Windows
If you are installing with Cygwin, use these scripts:
* [installer](https://gist.github.com/arzzen/35e09866dfdadf2108b2420045739245) * [installer](https://gist.github.com/arzzen/35e09866dfdadf2108b2420045739245)
* [uninstaller](https://gist.github.com/arzzen/21c660014d0663b6c5710014714779d6) * [uninstaller](https://gist.github.com/arzzen/21c660014d0663b6c5710014714779d6)
If you are wishing to use this with WSL, follow the UNIX and Linux instructions.
## System requirements ## System requirements
* Unix like OS with a proper shell * An OS with a Bash shell
* Tools we use: awk ; cat ; column ; echo ; git ; grep ; head ; seq ; sort ; tput ; tr ; uniq ; wc * Tools we use: awk ; basename ; cat ; column ; echo ; git ; grep ; head ; seq ; sort ; tput ; tr ; uniq ; wc
#### Dependences ### Dependencies
* [`bsdmainutils`](https://packages.debian.org/sid/bsdmainutils) `apt install bsdmainutils` * [`bsdmainutils`](https://packages.debian.org/sid/bsdmainutils) `apt install bsdmainutils`
@@ -172,17 +219,19 @@ brew install git-quick-stats
*Q:* I get some errors after run git-quick-stats in cygwin like `/usr/local/bin/git-quick-stats: line 2: $'\r': command not found` *Q:* I get some errors after run git-quick-stats in cygwin like `/usr/local/bin/git-quick-stats: line 2: $'\r': command not found`
*A:* You can run dos2unix app in cygwin `/bin/dos2unix.exe /usr/local/bin/git-quick-stats`. This will convert it to Unix format and you then should be able to run it. *A:* You can run the dos2unix app in cygwin as follows: `/bin/dos2unix.exe /usr/local/bin/git-quick-stats`. This will convert the script from the CR-LF convention that Microsoft uses to the LF convention that UNIX, OS X, and Linux use. You should then should be able to run it as normal.
## Contribution ## Contribution
Want to contribute? Great! First, read this page. Want to contribute? Great! First, read this page.
#### Code reviews ### Code reviews
All submissions, including submissions by project members, require review.</br>
We use Github pull requests for this purpose. All submissions, including submissions by project members, require review.</br>
We use GitHub pull requests for this purpose.
### Some tips for good pull requests
#### Some tips for good pull requests:
* Use our code </br> * Use our code </br>
When in doubt, try to stay true to the existing code of the project. When in doubt, try to stay true to the existing code of the project.
* Write a descriptive commit message. What problem are you solving and what * Write a descriptive commit message. What problem are you solving and what
@@ -195,11 +244,11 @@ We use Github pull requests for this purpose.
HEAD. This make reviewing the code so much easier, and our history more HEAD. This make reviewing the code so much easier, and our history more
readable. readable.
#### Formatting ### Formatting
This documentation is written using standard [markdown syntax](https://help.github.com/articles/markdown-basics/). Please submit your changes using the same syntax. This documentation is written using standard [markdown syntax](https://help.github.com/articles/markdown-basics/). Please submit your changes using the same syntax.
#### Tests ## Tests
[![codecov](https://codecov.io/gh/arzzen/git-quick-stats/branch/master/graph/badge.svg)](https://codecov.io/gh/arzzen/git-quick-stats) [![codecov](https://codecov.io/gh/arzzen/git-quick-stats/branch/master/graph/badge.svg)](https://codecov.io/gh/arzzen/git-quick-stats)
@@ -208,31 +257,29 @@ make test
``` ```
## Licensing ## Licensing
MIT see [LICENSE][] for the full license text. MIT see [LICENSE][] for the full license text.
[read this page]: http://github.com/arzzen/git-quick-stats/blob/master/docs/CONTRIBUTING.md [read this page]: http://github.com/arzzen/git-quick-stats/blob/master/docs/CONTRIBUTING.md
[landing page]: http://arzzen.github.io/git-quick-stats [landing page]: http://arzzen.github.io/git-quick-stats
[LICENSE]: https://github.com/arzzen/git-quick-stats/blob/master/LICENSE [LICENSE]: https://github.com/arzzen/git-quick-stats/blob/master/LICENSE
## Contributors ## Contributors
This project exists thanks to all the people who contribute. This project exists thanks to all the people who contribute.
<a href="https://github.com/arzzen/git-quick-stats/graphs/contributors"><img src="https://opencollective.com/git-quick-stats/contributors.svg?width=890&button=false" /></a> <a href="https://github.com/arzzen/git-quick-stats/graphs/contributors"><img src="https://opencollective.com/git-quick-stats/contributors.svg?width=890&button=false" /></a>
### Backers
## Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/git-quick-stats#backer)] Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/git-quick-stats#backer)]
<a href="https://opencollective.com/git-quick-stats#backers" target="_blank"><img src="https://opencollective.com/git-quick-stats/backers.svg?width=890"></a> <a href="https://opencollective.com/git-quick-stats#backers" target="_blank"><img src="https://opencollective.com/git-quick-stats/backers.svg?width=890"></a>
### Sponsors
## Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/git-quick-stats#sponsor)] Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/git-quick-stats#sponsor)]
<a href="https://opencollective.com/git-quick-stats/sponsor/0/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/0/avatar.svg"></a> <a href="https://opencollective.com/git-quick-stats/sponsor/0/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/0/avatar.svg?v=1"></a>
<a href="https://opencollective.com/git-quick-stats/sponsor/1/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/1/avatar.svg"></a> <a href="https://opencollective.com/git-quick-stats/sponsor/1/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/git-quick-stats/sponsor/2/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/2/avatar.svg"></a> <a href="https://opencollective.com/git-quick-stats/sponsor/2/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/git-quick-stats/sponsor/3/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/3/avatar.svg"></a> <a href="https://opencollective.com/git-quick-stats/sponsor/3/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/3/avatar.svg"></a>
@@ -242,5 +289,3 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
<a href="https://opencollective.com/git-quick-stats/sponsor/7/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/7/avatar.svg"></a> <a href="https://opencollective.com/git-quick-stats/sponsor/7/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/git-quick-stats/sponsor/8/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/8/avatar.svg"></a> <a href="https://opencollective.com/git-quick-stats/sponsor/8/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/git-quick-stats/sponsor/9/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/9/avatar.svg"></a> <a href="https://opencollective.com/git-quick-stats/sponsor/9/website" target="_blank"><img src="https://opencollective.com/git-quick-stats/sponsor/9/avatar.svg"></a>

View File

@@ -116,8 +116,8 @@ ADDITIONAL USAGE
ex: export _GIT_SINCE=\"2017-01-20\" ex: export _GIT_SINCE=\"2017-01-20\"
You can set _GIT_LIMIT for limited output log You can set _GIT_LIMIT for limited output log
ex: export _GIT_LIMIT=20 ex: export _GIT_LIMIT=20
You can exclude a directory from the stats by using pathspec You can exclude directories or files from the stats by using pathspec
ex: export _GIT_PATHSPEC=':!directory' ex: export _GIT_PATHSPEC=':!pattern'
You can set _MENU_THEME to display the legacy color scheme You can set _MENU_THEME to display the legacy color scheme
ex: export _MENU_THEME=legacy" ex: export _MENU_THEME=legacy"
} }
@@ -453,14 +453,28 @@ function commitsPerDay() {
################################################################################ ################################################################################
function commitsPerAuthor() { function commitsPerAuthor() {
optionPicked "Git commits per author:" optionPicked "Git commits per author:"
git -c log.showSignature=false shortlog $_since $_until --no-merges -n -s \ local authorCommits=$(git -c log.showSignature=false log --use-mailmap --no-merges \
| sort -nr | LC_ALL=C awk ' $_since $_until | grep -i Author: | cut -c9-)
{ args[NR] = $0; sum += $0 } local coAuthorCommits=$(git -c log.showSignature=false log --use-mailmap --no-merges \
END { $_since $_until | grep -i Co-Authored-by: | cut -c21-)
for (i = 1; i <= NR; ++i) {
printf "%s,%2.1f%%\n", args[i], 100 * args[i] / sum if [[ -z "${coAuthorCommits}" ]]
} then
}' | column -t -s, allCommits="${authorCommits}"
else
allCommits="${authorCommits}\n${coAuthorCommits}"
fi
echo -e "${allCommits}" | awk '
{ $NF=""; author[NR] = $0 }
END {
for(i in author) {
sum[author[i]]++; name[author[i]] = author[i]; total++;
}
for(i in sum) {
printf "\t%d,%s,%2.1f%%\n", sum[i], name[i], (100 * sum[i] / total)
}
}' | sort -n -r | column -t -s,
} }
################################################################################ ################################################################################

View File

@@ -114,9 +114,9 @@ You can set _GIT_LIMIT for limited output log, example:
.PP .PP
.B export _GIT_LIMIT=20 .B export _GIT_LIMIT=20
.PP .PP
You can exclude a directory from the stats by using pathspec, example: You can exclude directories or files from the stats by using pathspec, example:
.PP .PP
.B export _GIT_PATHSPEC=':!directory' .B export _GIT_PATHSPEC=':!pattern'
.PP .PP
You can switch to the legacy color scheme, example: You can switch to the legacy color scheme, example:
.PP .PP

View File

@@ -3,7 +3,7 @@
. tests/assert.sh -v . tests/assert.sh -v
src="./git-quick-stats" src="./git-quick-stats"
assert "$src fail" "Invalid argument\n\nNAME\n git-quick-stats - Simple and efficient way to access various stats in a git repo\n\nSYNOPSIS\n For non-interactive mode: git-quick-stats [OPTIONS]\n For interactive mode: git-quick-stats\n\nDESCRIPTION\n Any git repository contains tons of information about commits, contributors,\n and files. Extracting this information is not always trivial, mostly because\n of a gadzillion options to a gadzillion git commands.\n\n This program allows you to see detailed information about a git repository.\n\nOPTIONS\n -r, --suggest-reviewers\n show the best people to contact to review code\n -T, --detailed-git-stats\n give a detailed list of git stats\n -R, --git-stats-by-branch\n see detailed list of git stats by branch\n -d, --commits-per-day\n displays a list of commits per day\n -m, --commits-by-month\n displays a list of commits per month\n -w, --commits-by-weekday\n displays a list of commits per weekday\n -o, --commits-by-hour\n displays a list of commits per hour\n -A, --commits-by-author-by-hour\n displays a list of commits per hour by author\n -a, --commits-per-author\n displays a list of commits per author\n -S, --my-daily-stats\n see your current daily stats\n -C, --contributors\n see a list of everyone who contributed to the repo\n -b, --branch-tree\n show an ASCII graph of the git repo branch history\n -D, --branches-by-date\n show branches by date\n -c, --changelogs\n see changelogs\n -L, --changelogs-by-author\n see changelogs by author\n -j, --json-output\n save git log as a JSON formatted file to a specified area\n -h, -?, --help\n display this help text in the terminal\n\nADDITIONAL USAGE\n You can set _GIT_SINCE and _GIT_UNTIL to limit the git time log\n ex: export _GIT_SINCE=\"2017-01-20\"\n You can set _GIT_LIMIT for limited output log\n ex: export _GIT_LIMIT=20\n You can exclude a directory from the stats by using pathspec\n ex: export _GIT_PATHSPEC=':!directory'\n You can set _MENU_THEME to display the legacy color scheme\n ex: export _MENU_THEME=legacy" assert "$src fail" "Invalid argument\n\nNAME\n git-quick-stats - Simple and efficient way to access various stats in a git repo\n\nSYNOPSIS\n For non-interactive mode: git-quick-stats [OPTIONS]\n For interactive mode: git-quick-stats\n\nDESCRIPTION\n Any git repository contains tons of information about commits, contributors,\n and files. Extracting this information is not always trivial, mostly because\n of a gadzillion options to a gadzillion git commands.\n\n This program allows you to see detailed information about a git repository.\n\nOPTIONS\n -r, --suggest-reviewers\n show the best people to contact to review code\n -T, --detailed-git-stats\n give a detailed list of git stats\n -R, --git-stats-by-branch\n see detailed list of git stats by branch\n -d, --commits-per-day\n displays a list of commits per day\n -m, --commits-by-month\n displays a list of commits per month\n -w, --commits-by-weekday\n displays a list of commits per weekday\n -o, --commits-by-hour\n displays a list of commits per hour\n -A, --commits-by-author-by-hour\n displays a list of commits per hour by author\n -a, --commits-per-author\n displays a list of commits per author\n -S, --my-daily-stats\n see your current daily stats\n -C, --contributors\n see a list of everyone who contributed to the repo\n -b, --branch-tree\n show an ASCII graph of the git repo branch history\n -D, --branches-by-date\n show branches by date\n -c, --changelogs\n see changelogs\n -L, --changelogs-by-author\n see changelogs by author\n -j, --json-output\n save git log as a JSON formatted file to a specified area\n -h, -?, --help\n display this help text in the terminal\n\nADDITIONAL USAGE\n You can set _GIT_SINCE and _GIT_UNTIL to limit the git time log\n ex: export _GIT_SINCE=\"2017-01-20\"\n You can set _GIT_LIMIT for limited output log\n ex: export _GIT_LIMIT=20\n You can exclude directories or files from the stats by using pathspec\n ex: export _GIT_PATHSPEC=':!pattern'\n You can set _MENU_THEME to display the legacy color scheme\n ex: export _MENU_THEME=legacy"
assert_raises "$src fail" 1 assert_raises "$src fail" 1
assert_contains "$src --suggest-reviewers" "Suggested code reviewers (based on git history)" 127 assert_contains "$src --suggest-reviewers" "Suggested code reviewers (based on git history)" 127