mirror of
https://github.com/git-quick-stats/git-quick-stats.git
synced 2025-12-21 12:13:52 +01:00
Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08520bf068 | ||
|
|
374527dbe1 | ||
|
|
dba2d87206 | ||
|
|
8bfc58710a | ||
|
|
6f931ac9b5 | ||
|
|
42a657b0de | ||
|
|
a48347e0df | ||
|
|
f4930f152d | ||
|
|
e5727cf4e9 | ||
|
|
6b54e9d8df | ||
|
|
7f70c8b728 | ||
|
|
dc86f8b6ae | ||
|
|
36967bc6f4 | ||
|
|
cdfa6bf467 | ||
|
|
a496390884 | ||
|
|
e81d3ab9f4 | ||
|
|
b0e62d64c7 | ||
|
|
01b6e17007 | ||
|
|
ac730dbfbc | ||
|
|
37b37bb5c8 | ||
|
|
db8009ff6d | ||
|
|
5a275c87b8 | ||
|
|
98c0252e97 | ||
|
|
5a389f5071 | ||
|
|
382f6759cf | ||
|
|
6362149953 | ||
|
|
36cae305a4 | ||
|
|
90f6b631a9 | ||
|
|
6a894d9efe | ||
|
|
ef6120fa64 |
3
.mailmap
Normal file
3
.mailmap
Normal file
@@ -0,0 +1,3 @@
|
||||
Lukas Mestan <lukas.mestan@gmail.com> Lukáš Mešťan <arzzen@users.noreply.github.com>
|
||||
Lukas Mestan <lukas.mestan@gmail.com> arzzen
|
||||
|
||||
34
.travis.yml
34
.travis.yml
@@ -1,2 +1,34 @@
|
||||
language: bash
|
||||
language: generic
|
||||
|
||||
sudo: required
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libcurl4-openssl-dev
|
||||
- libelf-dev
|
||||
- libdw-dev
|
||||
- cmake
|
||||
|
||||
install:
|
||||
- git checkout ${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}
|
||||
- git branch --set-upstream-to origin/$TRAVIS_BRANCH
|
||||
- git rev-parse HEAD
|
||||
|
||||
script: make test
|
||||
|
||||
after_success: |
|
||||
wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
|
||||
tar xzf master.tar.gz &&
|
||||
cd kcov-master &&
|
||||
mkdir build &&
|
||||
cd build &&
|
||||
cmake .. &&
|
||||
make &&
|
||||
sudo make install &&
|
||||
cd ../.. &&
|
||||
rm -rf kcov-master &&
|
||||
mkdir -p coverage &&
|
||||
kcov coverage git-quick-stats suggestReviewers && bash <(curl -s https://codecov.io/bash) -cF suggestReviewers &&
|
||||
kcov coverage git-quick-stats detailedGitStats && bash <(curl -s https://codecov.io/bash) -cF detailedGitStats &&
|
||||
kcov coverage git-quick-stats commitsPerDay && bash <(curl -s https://codecov.io/bash) -cF commitsPerDay
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Lukáš Mešťan
|
||||
Copyright (c) 2018 Lukáš Mešťan
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
7
Makefile
7
Makefile
@@ -1,5 +1,5 @@
|
||||
PREFIX=/usr/local
|
||||
TASK_DONE = echo "\n✓ $@ done\n"
|
||||
PREFIX ?= /usr/local
|
||||
TASK_DONE = echo -e "\n✓ $@ done\n"
|
||||
# files that need mode 755
|
||||
EXEC_FILES=git-quick-stats
|
||||
|
||||
@@ -16,7 +16,8 @@ help:
|
||||
@$(TASK_DONE)
|
||||
|
||||
install:
|
||||
install -m 0755 $(EXEC_FILES) $(PREFIX)/bin
|
||||
mkdir -p $(PREFIX)/bin
|
||||
install -m 0755 $(EXEC_FILES) $(PREFIX)/bin/$(EXEC_FILES)
|
||||
git config --global alias.quick-stats '! $(PREFIX)/bin/$(EXEC_FILES)'
|
||||
@$(TASK_DONE)
|
||||
|
||||
|
||||
37
README.md
37
README.md
@@ -1,12 +1,13 @@
|
||||
|
||||
## GIT quick statistics
|
||||
## GIT quick statistics [](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)
|
||||
|
||||
[](https://travis-ci.org/arzzen/git-quick-stats)
|
||||
[]()
|
||||
[](https://travis-ci.org/arzzen/git-quick-stats)
|
||||
[](http://braumeister.org/formula/git-quick-stats)
|
||||
[](https://repology.org/metapackage/git-quick-stats/packages)
|
||||
|
||||
> `git quick-stats` is a simple and efficient way to access various statistics in git repository.
|
||||
|
||||
> Any git repository contains a tonne 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 don’t think there is a single person alive who knows them all. Probably not even [Linus Torvalds](https://github.com/torvalds) himself :).
|
||||
> 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 don’t think there is a single person alive who knows them all. Probably not even [Linus Torvalds](https://github.com/torvalds) himself :).
|
||||
|
||||
## Table of Contents
|
||||
|
||||
@@ -18,7 +19,7 @@
|
||||
* [**Windows**](#windows-cygwin)
|
||||
|
||||
[**Usage**](#usage)
|
||||
* [**Git log since/unitl**](#git-log-since-until)
|
||||
* [**Git log since/until**](#git-log-since-until)
|
||||
* [**Git log limit**](#git-log-limit)
|
||||
* [**Git pathspec**](#git-pathspec)
|
||||
* [**Tests**](#tests)
|
||||
@@ -28,6 +29,8 @@
|
||||
|
||||
[**Contribution**](#contribution)
|
||||
|
||||
[**FAQ**](#faq)
|
||||
|
||||
[**License**](#licensing)
|
||||
|
||||
|
||||
@@ -48,7 +51,7 @@
|
||||
|
||||
```bash
|
||||
git quick-stats
|
||||
# or
|
||||
# or
|
||||
git-quick-stats
|
||||
```
|
||||
|
||||
@@ -56,7 +59,7 @@ Or you can use (non-interactive) direct execution:
|
||||
|
||||
`git quick-stats <optional-command-to-execute-directly>`
|
||||
|
||||
Possible arguments:
|
||||
Possible arguments:
|
||||
> suggestReviewers, detailedGitStats, commitsByHour, commitsByWeekday, commitsByMonth, commitsPerDay, commitsPerAuthor, myDailyStats, contributors,
|
||||
branchTree, branchesByDate, changelogs, changelogsByAuthor
|
||||
|
||||
@@ -73,7 +76,7 @@ export _GIT_UNTIL="2017-22-01"
|
||||
then run `git quick-stats` (affect all stats, except "My daily status" and "Git changelogs" )
|
||||
|
||||
|
||||
#### Git log limit
|
||||
#### Git log limit
|
||||
|
||||
You can set variable `_GIT_LIMIT` for limited output (it will affect: "Git changelogs" and "Branch tree view" )
|
||||
|
||||
@@ -119,7 +122,7 @@ brew install git-quick-stats
|
||||
|
||||
#### Windows (cygwin)
|
||||
|
||||
* [installer](https://gist.github.com/arzzen/35e09866dfdadf2108b2420045739245)
|
||||
* [installer](https://gist.github.com/arzzen/35e09866dfdadf2108b2420045739245)
|
||||
* [uninstaller](https://gist.github.com/arzzen/21c660014d0663b6c5710014714779d6)
|
||||
|
||||
|
||||
@@ -132,12 +135,18 @@ brew install git-quick-stats
|
||||
|
||||
* [`bsdmainutils`](https://packages.debian.org/sid/bsdmainutils) `apt install bsdmainutils`
|
||||
|
||||
## Contribution
|
||||
## FAQ
|
||||
|
||||
*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.
|
||||
|
||||
## Contribution
|
||||
|
||||
Want to contribute? Great! First, read this page.
|
||||
|
||||
#### Code reviews
|
||||
All submissions, including submissions by project members, require review.
|
||||
All submissions, including submissions by project members, require review.
|
||||
We use Github pull requests for this purpose.
|
||||
|
||||
#### Some tips for good pull requests:
|
||||
@@ -159,6 +168,8 @@ This documentation is written using standard [markdown syntax](https://help.gith
|
||||
|
||||
#### Tests
|
||||
|
||||
[](https://codecov.io/gh/arzzen/git-quick-stats)
|
||||
|
||||
```bash
|
||||
make test
|
||||
```
|
||||
@@ -166,7 +177,7 @@ make test
|
||||
## Licensing
|
||||
MIT see [LICENSE][] for the full license text.
|
||||
|
||||
[read this page]: http://github.com/arzzen/git-quick-stats/blob/master/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
|
||||
[LICENSE]: https://github.com/arzzen/git-quick-stats/blob/master/LICENSE.txt
|
||||
[LICENSE]: https://github.com/arzzen/git-quick-stats/blob/master/LICENSE
|
||||
|
||||
|
||||
9
docs/issue_template.md
Normal file
9
docs/issue_template.md
Normal file
@@ -0,0 +1,9 @@
|
||||
#### Expected behavior and actual behavior.
|
||||
|
||||
|
||||
#### Steps to reproduce the problem.
|
||||
|
||||
|
||||
#### Specifications like the version of the project, operating system, or hardware.
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ function show_menu() {
|
||||
echo -e ""
|
||||
echo -e "${RED_TEXT} Generate: ${NORMAL}"
|
||||
echo -e "${MENU} ${NUMBER} 1)${MENU} Contribution stats (by author) ${NORMAL}"
|
||||
echo -e "${MENU} ${NUMBER} 2)${MENU} Git changelogs (last $_limit)${NORMAL}"
|
||||
echo -e "${MENU} ${NUMBER} 2)${MENU} Git changelogs (last $_limit days)${NORMAL}"
|
||||
echo -e "${MENU} ${NUMBER} 3)${MENU} Git changelogs by author ${NORMAL}"
|
||||
echo -e "${MENU} ${NUMBER} 4)${MENU} My daily status ${NORMAL}"
|
||||
echo -e "${RED_TEXT} List: ${NORMAL}"
|
||||
@@ -97,7 +97,8 @@ function detailedGitStats() {
|
||||
}
|
||||
|
||||
/^Author:/ {
|
||||
author = $2 " " $3
|
||||
$1 = ""
|
||||
author = $0
|
||||
commits[author] += 1
|
||||
commits["total"] += 1
|
||||
}
|
||||
@@ -204,7 +205,7 @@ function commitsByHour() {
|
||||
for i in `seq -w 0 23`
|
||||
do
|
||||
echo -ne "\t$i\t"
|
||||
echo $(git shortlog -n --no-merges --format='%ad %s' $_author $_since $_until | grep " $i:" | wc -l)
|
||||
echo "$(git shortlog -n --no-merges --format='%ad %s' $_author $_since $_until | grep ' '$i: | wc -l)"
|
||||
done | awk '{
|
||||
count[$1] = $2
|
||||
total += $2
|
||||
@@ -268,19 +269,20 @@ function branchesByDate() {
|
||||
|
||||
function changelogs() {
|
||||
local author="${1:-}"
|
||||
local _author=''
|
||||
local _author
|
||||
if [ -z "$author" ]; then
|
||||
option_picked "Git changelogs:"
|
||||
_author="--author=**"
|
||||
else
|
||||
option_picked "Git changelogs for author '$author':"
|
||||
_author="--author=$author"
|
||||
fi
|
||||
|
||||
NEXT=$(date +%F)
|
||||
git log --use-mailmap --no-merges --format="%cd" --date=short $_author $_since $_until $_pathspec | sort -u -r | head -n $_limit | while read DATE ; do
|
||||
git log --use-mailmap --no-merges --format="%cd" --date=short "$_author" $_since $_until $_pathspec | sort -u -r | head -n $_limit | while read DATE ; do
|
||||
echo
|
||||
echo "[$DATE]"
|
||||
GIT_PAGER=cat git log --use-mailmap --no-merges --format=" * %s (%aN)" $_author --since=$DATE --until=$NEXT
|
||||
GIT_PAGER=cat git log --use-mailmap --no-merges --format=" * %s (%aN)" "$_author" --since=$DATE --until=$NEXT
|
||||
NEXT=$DATE
|
||||
done
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user