GithubHelp home page GithubHelp logo

arzzen / git-quick-stats Goto Github PK

View Code? Open in Web Editor NEW
6.2K 57.0 245.0 413 KB

▁▅▆▃▅ Git quick statistics is a simple and efficient way to access various statistics in git repository.

Home Page: https://git-quick-stats.sh/

License: MIT License

Makefile 1.59% Shell 90.96% Roff 6.12% Dockerfile 1.33%
bash git statistics reviewer history stats shell-script git-addons statistical-analysis shell

git-quick-stats's Introduction

GIT quick statistics Tweet

Backers on Open Collective Sponsors on Open Collective Homebrew package

git-quick-stats is a simple and efficient way to access various statistics in a git repository.

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 don’t think there is a single person alive who knows them all. Probably not even Linus Torvalds himself :).

mainMenuScreenshot

Table of Contents

Screenshots

Usage

Installation

System requirements

FAQ

Contribution

Tests

Licensing

Contributors

Screenshots

commitsByWeekdayScreenshot

commitsByHourScreenshot

Usage

Interactive

git-quick-stats has a built-in interactive menu that can be executed as such:

git-quick-stats

Or

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:

git-quick-stats <optional-command-to-execute-directly>

Or

git quick-stats <optional-command-to-execute-directly>

Command-line arguments

Possible arguments in short and long form:

GENERATE OPTIONS
    -T, --detailed-git-stats
        give a detailed list of git stats
    -R, --git-stats-by-branch
        see detailed list of git stats by branch
    -c, --changelogs
        see changelogs
    -L, --changelogs-by-author
        see changelogs by author
    -S, --my-daily-stats
        see your current daily stats
    -V, --csv-output-by-branch
        output daily stats by branch in CSV format
    -j, --json-output
        save git log as a JSON formatted file to a specified area

LIST OPTIONS
    -b, --branch-tree
        show an ASCII graph of the git repo branch history
    -D, --branches-by-date
        show branches by date
    -C, --contributors
        see a list of everyone who contributed to the repo
    -a, --commits-per-author
        displays a list of commits per author
    -d, --commits-per-day
        displays a list of commits per day
    -Y, --commits-by-year
        displays a list of commits per year
    -m, --commits-by-month
        displays a list of commits per month
    -w, --commits-by-weekday
        displays a list of commits per weekday
    -W, --commits-by-author-by-weekday
        displays a list of commits per weekday by author
    -o, --commits-by-hour
        displays a list of commits per hour
    -A, --commits-by-author-by-hour
        displays a list of commits per hour by author
    -z, --commits-by-timezone
        displays a list of commits per timezone
    -Z, --commits-by-author-by-timezone
        displays a list of commits per timezone by author

SUGGEST OPTIONS
    -r, --suggest-reviewers
        show the best people to contact to review code
    -h, -?, --help
        display this help text in the terminal

Git log since and until

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.

export _GIT_SINCE="2017-01-20"
export _GIT_UNTIL="2017-01-22"

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

You can set variable _GIT_LIMIT for limited output. It will affect the "changelogs" and "branch tree" options. The default limit is 10.

export _GIT_LIMIT=20

Git log options

You can set _GIT_LOG_OPTIONS for git log options:

export _GIT_LOG_OPTIONS="--ignore-all-space --ignore-blank-lines"

Git pathspec

You can exclude a directory from the stats by using pathspec

export _GIT_PATHSPEC=':!directory'

You can also exclude files from the stats. Note that it works with any alphanumeric, glob, or regex that git respects.

export _GIT_PATHSPEC=':!package-lock.json'

Git merge view strategy

You can set the variable _GIT_MERGE_VIEW to enable merge commits to be part of the stats by setting _GIT_MERGE_VIEW to enable. You can also choose to only show merge commits by setting _GIT_MERGE_VIEW to exclusive. Default is to not show merge commits. These work similar to git's built-in --merges and --no-merges log options.

export _GIT_MERGE_VIEW="enable"
export _GIT_MERGE_VIEW="exclusive"

Git branch

You can set the variable _GIT_BRANCH to set the branch of the stats. Works with commands --git-stats-by-branch and --csv-output-by-branch.

export _GIT_BRANCH="master"

Color themes

You can change to the legacy color scheme by toggling the variable _MENU_THEME between default and legacy

export _MENU_THEME="legacy"

legacyThemeScreenshot

Installation

Debian and Ubuntu

If you are on at least Debian Bullseye or Ubuntu Focal you can use apt for installation:

apt install git-quick-stats

UNIX and Linux

git clone https://github.com/arzzen/git-quick-stats.git && cd git-quick-stats
sudo make install

For uninstalling, open up the cloned directory and run

sudo make uninstall

For update/reinstall

sudo make reinstall

macOS (homebrew)

brew install git-quick-stats

Or you can follow the UNIX and Linux instructions if you wish.

Windows

If you are installing with Cygwin, use these scripts:

If you are wishing to use this with WSL, follow the UNIX and Linux instructions.

Docker

You can use the Docker image provided:

  • Build: docker build -t arzzen/git-quick-stats .
  • Run interactive menu: docker run --rm -it -v $(pwd):/git arzzen/git-quick-stats
  • Docker pull command: docker pull arzzen/git-quick-stats docker repository

System requirements

  • An OS with a Bash shell
  • Tools we use:
awk
basename
cat
column
echo
git
grep
head
printf
seq
sort
tput
tr
uniq

Dependencies

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 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.

Q: How they could be used in a project with many git projects and statistics would show a summary of all git projects?

A: If you want to include submodule logs, you can try using the following: export _GIT_LOG_OPTIONS="-p --submodule=log" (more info about git log --submodule)

Contribution

Want to contribute? Great! First, read this page.

Code reviews

All submissions, including submissions by project members, require review.
We use GitHub pull requests for this purpose.

Some tips for good pull requests

  • Use our code
    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 are the consequences? Where and what did you test? Some good tips: here and here.
  • If your PR consists of multiple commits which are successive improvements / fixes to your first commit, consider squashing them into a single commit (git rebase -i) such that your PR is a single commit on top of the current HEAD. This make reviewing the code so much easier, and our history more readable.

Formatting

This documentation is written using standard markdown syntax. Please submit your changes using the same syntax.

Tests

codecov

make test

Licensing

MIT see LICENSE for the full license text.

Contributors

This project exists thanks to all the people who contribute.

contributors

Backers

Thank you to all our backers! 🙏 [Become a backer]

backers

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

sponsor0 sponsor1 sponsor2 sponsor3 sponsor4 sponsor5 sponsor6 sponsor7 sponsor8 sponsor9

git-quick-stats's People

Contributors

4ndrej avatar a7r3 avatar arzzen avatar chenrui333 avatar danieltaub96 avatar dotmpe avatar golflima avatar jgtoriginal avatar joopmicroop avatar jorgesumle avatar joshuadeguzman avatar keur avatar kidd avatar laurence6 avatar linell avatar loonies avatar mcpcpc avatar mdegis avatar mhickman avatar mixn avatar motiprajapati avatar nskins avatar riderius avatar robertbeilich avatar s-okita avatar supersandro2000 avatar thangdc94 avatar tomice avatar vutny avatar ydx-2147483647 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

git-quick-stats's Issues

Tab character showing as \x09

The output from this repo:

Git commits per author:

75\x09Lukas Mestan       89.3%
2\x09Joopmicroop         2.4%
1\x09Raimon Grau         1.2%
1\x09Nicholas Skinsacos  1.2%
1\x09Melih Değiş         1.2%
1\x09Linell              1.2%
1\x09Dustin Blomquist    1.2%
1\x09Brian Kroth         1.2%
1\x09Andrew Huss         1.2%

I'm using the latest version as of today (2017-10-02). I'm on Fedora 26.

[Feature Request] Skip some dirs from the stats

Hi,

Great tool! Thank you a lot, pretty useful to me right now.

However, I am concerned that the frontend guy gets in his stats all the lines of all the JS/CSS libs he added to the project. I am afraid that it could weigh a lot in the stats...

Is there a way to skip some folders, and/or some files by name?

Would be even more awesome, because even more precise!

What do you think?

Cheers,

`showSignature = true` messes with stats

Expected behavior and actual behavior.

Expected: signature-related log text should be ignored by script
Actual: signature-related log text is parsed as if it was actual log text

Steps to reproduce the problem.

Enable on ~/.gitconfig:

[log]
    showSignature = true

List contributors sorted by name, on a repository with signed commits:

$ git quick-stats # and then select e.g. 7

Notes

There exists some git log command line switch for overriding of this flag - I don't remember which one, but another git-related project used it to avoid this problem.

Git changelogs only shows a single item

Not sure if this is the intended behaviour.

I was expecting something like a list of commit messages since the last tag or something, making it easier to write changelogs.

If single item is the intended behaviour, I'd like to offer this as a suggestion / enhancement.

awk: division by zero

I'm trying to run this on any of my repos and I end up with this:

Contribution stats (by author):

        total:
          insertions:    202248 (100%)
          deletions:     72015 (100%)
          files:         10782 (100%)
awk: division by zero
 input record number 18202, file
 source line number 8

Exclude file from stats

I would like to exclude package-lock.json from statistics since it's commitable but auto-generated by npm.

As I understand from the readme _GIT_PATHSPEC works only with dirs?

Cygwin git-quick-stats errors in script

Hello. I get some errors after run git-quick-stats in cygwin:

$ git-quick-stats
/usr/local/bin/git-quick-stats: line 2: $'\r': command not found
: invalid option nameick-stats: line 3: set: nounset
: invalid option nameick-stats: line 4: set: errexit
/usr/local/bin/git-quick-stats: line 5: $'\r': command not found
/usr/local/bin/git-quick-stats: line 28: syntax error near unexpected token `$'{\r''
'usr/local/bin/git-quick-stats: line 28: `function show_menu() {

git-quick-stats should ignore format.pretty in gitconfig

As mentioned in #16,

Apparently git-quick-stats is using my overridden pretty format from my git config. To repro, add this to your gitconfig:

[format]
  pretty=format:%C(yellow)%h%Creset -%C(red)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset

It reports no contributors for the contribution stats.

You may need to hard code the format you use, or maybe temporarily unset HOME so it ignores the gitconfig.

Percentage calculation for "lines changed" may cause divide by zero error

Describe the bug
A new feature was implemented to show percentages when displaying detailed stats (menu options 1 and 2, or options -T and -R). However, the calculation during "lines changed" (line number 285) may cause an error within awk stating it cannot divide by zero as there is no check to see if the divisor is larger than zero.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new directory and enter it
    mkdir foo && cd foo
  2. Initialize the repo
    git init
  3. Add a file and commit it
    touch bar && git add bar && git commit -m "Initial commit"
  4. Execute the detailed stats option
    git quick-stats -T
    OR
    git quick-stats -R (and choose author)
    OR
    git quick-stats (and choose options 1 or 2)

Expected behavior
The output should display the calculations properly without error.

Current behavior

Contribution stats (by author) on the current branch:

         Tom Ice <[email protected]>:
          files:         1      (100%)
          commits:       1      (100%)
awk: cmd. line:26: (FILENAME=- FNR=8) fatal: division by zero attempted

List of all the branches

When generating a list of all branches the program crashes.

List of all the branches, ordered by most recent commits:
fatal: unknown field name: color:blue

Inconsistent sum sorting in by-weekday vs by-hour or by-month

Describe the bug
My problem is that due to #24 the weekday output is sorted by sum, where as month and hour as sorted by their respective primary key.

In the case of hour this tends to show a nice bell curve, indicating where your peak work time is.

Where as the weekday, since the sort is by sum, it is always top heavy inverted triangle, and the "top" day may change between runs, causing you to have to inspect each line each time.
This is nice for finding what days get the max work in as its always at the top, but does not an as useful chart.

To Reproduce
Steps to reproduce the behavior:

  1. Run the 'commits per weekday' stat
  2. See the always top heavy graph.
  3. Run the 'commits per hour' stat.
  4. See the left column hours maintain their logical order, not sorted by sum ( and a likely bell curve of commit distribution)

Expected behavior
I would like the output of the weekday stat graph to be sorted by the day of the week, and not sum. With the precedent being the month graph is sorted by month (not sum) and per hour is sorted by hour (not sum)

Screenshots
I made a quick mockup to show what the effect of maintaining the day of week sorting would look like.
weekday_with_mockup

and the previously mentioned by-hour bell curve
by_hour_bellcurve

Desktop (please complete the following information):

  • OS: MacOS Cataline 10.15.2
  • Browser: Chrome 79
  • Version: 2.0.12 (via brew)

Additional context
I could be entirely wrong, just armchair hypothesis:

I've taken a quick look at the code, and while my scripting is rusty and your code is awesome, I think the fix would be to drop the sort-by-sum post-sort added in #24 and just prefill the count array with 0s as you iterate on the Mon-Tue-etc for loop, so that the order of the days is pre-established and not randomly filled in as they are found in the git log output which I believe to be the original root cause of the "random" order in 24.

Odd Output for Changelog Generation

When I use the "Generate Changelog" option, I get the following output instead of just a changelog:

Generate git changelogs:
usage: git rev-list [OPTION] <commit-id>... [ -- paths... ]
  limiting output:
    --max-count=<n>
    --max-age=<epoch>
    --min-age=<epoch>
    --sparse
    --no-merges
    --min-parents=<n>
    --no-min-parents
    --max-parents=<n>
    --no-max-parents
    --remove-empty
    --all
    --branches
    --tags
    --remotes
    --stdin
    --quiet
  ordering output:
    --topo-order
    --date-order
    --reverse
  formatting output:
    --parents
    --children
    --objects | --objects-edge
    --unpacked
    --header | --pretty
    --abbrev=<n> | --no-abbrev
    --abbrev-commit
    --left-right
    --count
  special purpose:
    --bisect
    --bisect-vars
    --bisect-all
- update readme

Here's an asciinema of exactly what I did to replicate the above.

Feature: show git stats for all (remote) branches

Expected behavior and actual behavior.

Right now there are some statistics on the current or a specific branch, I couldn't find a way to output per user commits for instance of all branches. Would be nice to have.

Steps to reproduce the problem.

Specifications like the version of the project, operating system, or hardware.

Travis CI fails on any pull request where the dev didn't work on master

Expected behavior and actual behavior.

Expected
Travis CI should work regardless of what branch the developer worked off of. So if the developer creates his or her own feature-based branch in order to add an enhancement or fix an issue, Travis CI should report a successful build if the software is indeed buildable and passes all tests.

Actual
Instead, it appears that Travis CI bombs out and reports it cannot build because it cannot find the feature branch. An example of the failed output can be seen here: https://travis-ci.org/arzzen/git-quick-stats/builds/530223260?utm_source=github_status&utm_medium=notification

Steps to reproduce the problem.

  1. Fork this repo
  2. Create a new branch and make a change
  3. Submit a PR with this new change
  4. Observe Travis CI's behavior as it attempts to build off of the latest commit on that branch

Specifications like the version of the project, operating system, or hardware.

Happens in the latest version and configuration of this code base.

[Bug] Doesn't work if author name has space

Expected behavior and actual behavior.

Actual Behavior

When "Git changelogs by author" is selected, it ask for author, after input a name with space, it display below error message:

fatal: ambiguous argument 'Tung': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Expected behavior

The changelogs of the author should be displayed

Steps to reproduce the problem.

$ cd /tmp/
$ git clone https://github.com/beenotung/tslib.git
$ cd tslib
$ git-quick-stats
# input 3
# input Beeno Tung

Specifications like the version of the project, operating system, or hardware.

project

commit: ac730db
tag: 1.0.9

uname -a

Linux BeenoTung-Archlinux-Home 4.13.12-1-ARCH #1 SMP PREEMPT Wed Nov 8 11:54:06 CET 2017 x86_64 GNU/Linux

Workaround

It can display user name that is not exactly matched.
Example: for user name foo bar, we can just input foo.

However if there are two users foo bar and foo rab, the result may be disleading.

A couple of new features

Hi,

I forked your repo a couple days ago. I added a few new features (total number of commits, total number of code lines added/deleted, total number of contributors). These features also use the $_since $_until arguments, so that people can get the total number of commits/lines added/lines deleted/contributors within a certain period of time (for example, annually).

The reason I added those features is to see what is development trend and the community growth (in terms of contributors) for an open source project I have been working on.

The code is available here: https://github.com/spirosmastorakis/git-quick-stats

Let me know if you think these features might be useful.

git-quick-stats -j does not work as expected

I experienced what I think are a few bugs / issues with the -j option:

I cannot pass the path as an argument

I was expecting to be able to do git-quick-stats -j path/to/stats.json but this leads to Invalid arguments

image

The option does not compose well

I would expect to be able to both select the type of report and precise that I would like a json output. however this does not seem to be possible. for instance git-quick-stats -a -j

image

When passing the argument interactively it still does not work

instead, no matter the path, we get Invalid path or permission denied to write to given area..
Notes:

  • starting with sudo does not help
  • a simple touch for the same file works fine, it's not an actual access right issue
    image

Additional info

system: ubunto 19.10
git-quick-stat commit: 9e18cf3 (HEAD as of 2020-04-30)

Please provide a man page

There is none at this moment. All of the git commands have comprehensive documentation in the man form, it would be nice, if this quick-stats would follow this.

'Git commits by weekday' unsorted?

Below is the output of "git commits by weekday" run on kdev-python.

I would have expected this to either be listed in week order or be sorted by the number of commits; instead the order appears random.

Is this expected?

        day     sum
        Tue     275     |=========
        Sat     349     |===========
        Thu     346     |===========
        Sun     410     |==============
        Mon     288     |=========
        Fri     361     |============
        Wed     308     |==========

[FEATURE WISH] Recursive

Hi,

this is a feature wish :) it would be awesome if this could be used in a dir with lot git projects and the stats would show a summary about all git projects.

Best Regards
Sven

could the env var _GIT_SINCE support the same formats as `git log`

export _GIT_SINCE=<DateInIsoFormat> works like a charm

However, with git log I can also use

git log --since="1 month ago"
git log --since="2 weeks 3 days ago"

and for stat generation I use it this way for instance

git log --author="Your Name Here" --since="1 month ago" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

However when I do

export _GIT_SINCE="1 month ago" 
git quick-stats
> 2
> dev

I get the following

fatal: bad revision 'month'

Is there a way this could be do-able with quick-stats as well ? Would be nice.

Add another output format

A cool feature it would be awesome to see is output the results into files/xml to allow visualization in other tools.

What do you say?

Support Co-authored Commits

  • Running 9) Git commits per author gives the following output:
Git commits per author:

204  Youssef Raafat    49.5%
189  Michael Safwat    45.9% 
 19  Micheline Medhat  4.6%

While the GitHub repo contains the following stats due to Co-authors.

image

  • If I ran git shortlog --grep='Co-authored-by: Youssef Raafat' -s -n the output will be 77 Michael Safwat.
  • Adding the 77 commit from shortlog to the 204 commits of the previous output gives us something near GitHub stats.

So is it possible to add option to count commits by authors & co-authors?

The Exclude Folders from stats option is not working

Describe the bug
I execute export _GIT_PATHSPEC=':!docs' in the terminal and there are no errors, however when I execute git-quick-stats and press for example 1 it shows:
fatal: unrecognized argument: -- :!docs total:

To Reproduce
Steps to reproduce the behavior:

  1. export _GIT_PATHSPEC=':!docs' in the terminal
  2. Open ./git-quick-stats and press 1

Expected behavior
It should show the stats without the specified folder

Desktop (please complete the following information):

  • OS: Ubuntu 20.04, Shell: zsh

Docker image

Hi,
I made a small docker image for your tool, but if you'd like to integrate the dockerfile directly in your project let me know: I'll made a pull request and redirect my repo to yours.
The repo: https://github.com/frxyt/docker-git-quick-stats
It's easier to integrate your tool in a CI/CD toolchain with docker that's why I made it in the first place.

cygwin make install

when I run 'make install' in cygwin I get:
install -m 0755 git-quick-stats /usr/local/bin 0 [main] make 10516 child_info_fork::abort: C:\cygwin32\bin\cygcrypt-0.dll: Loaded to different address: parent(0xE0000) != child(0x67700000) make: fork: Resource temporarily unavailable

When I ran the commands in the install section of the makefile, seperately in shell all worked without errors.
I've tried 'make install' in a cygwin with administrator rights and without, both gave me the same error.

I haven't had this problem at home when I tried this with cygwin... So maybe something cygwin related?? Don't know..

Some months not displayed

Expected behavior and actual behavior.

git-quick-stats -m

Actual:

Git commits by month:

        month   sum
        Jan     77      |███████████████████████████████████████████████████
        Feb     43      |████████████████████████████
        Mar     0       |

Expected:

Git commits by month:

        month   sum
        Jan     77      |█████████████████████████████████████████
        Feb     43      |██████████████████████
        Mar     0       |
        Apr     0       |
        May     0       |
        Jun     0       |
        Jul     1       |
        Aug     9       |████
        Sep     5       |██
        Oct     0       |
        Nov     7       |███
        Dec     8       |████

Steps to reproduce the problem.

Find a repository doesn't have commits in some months in the middle of a year.
Then, execute git-quick-stats -m.

Specifications like the version of the project, operating system, or hardware.

Version 2.0.3-2.0.4

options for no merges

It would be nice if we could add the ability to not show stats related to merges.

Supporting _GIT_EXCLUDE for detailedGitStats

In my project, certain directories contain generated code and I would like to exclude them from the stats. This can be done by using the exclude pathspec documented here: git/git@ef79b1f
For example, the following command will exclude gen1/gen2/gen3 from the log.

git log -- . ':!gen1' ':!gen2' ':!gen3' 

Can you add something like _GIT_EXCLUDE to support this use case?

please install to /usr/lib/git-core not /usr/bin

All other git programs: built-in, official extension, all third-party extensions I've looked at, are invoked via git foo-bar rather than git-foo-bar. Except for your tool.

Thus, it would be nice if you installed to /usr/lib/git-core instead of /usr/bin. If you're concerned about your old users' muscle memory, a symlink from one location to the other might be good.

[Bug] Last commit time is determined incorrectly

Expected behavior and actual behavior.

Expected: Show date and time of the most recent commit in the commit history for an author.
Actual: Shows the date and time of the last commit attributable to the author in the commit history.

  • a1234567 - (2018-05-01) (HEAD -> master) Commit #1 <Author>
  • b2345678 - (2018-06-01) Commit #2 <Author>

The above commit log will show Author's last commit was 2018-05-01, instead of 2018-06-01.

mac 10.15 output: unknown terminal "xterm"

Expected behavior and actual behavior.

show git stats

Steps to reproduce the problem.

just run git-quick-stats

Specifications like the version of the project, operating system, or hardware.

output: unknown terminal "xterm"

[Feature] Add First time commits since

This is an awesome tool that I'll be using to generate a list of first time contributors to our repos/org to showcase on Twitter/medium.

Id love to make the process even easier by having a command that would give me a list of users who contributed for the first time since a certain date.

I'm not very well versed in bash (at all) so I figured I'd atleast request it as a feature.

Nice work all this is wonderful. <3

Maybe an easy enhancement to stats by user.

Possible Enhancement

When you run the number 1 option to get the git stats by user it would be nice if you could have the option to ignore the initial commit in some way. Often in older projects that have been moved from a previous source control system over to git, one user did the initial commit. Is it possible to ignore the first commit when running stats by user? Is it possible already and I just didn't see how to do it?

Is there a way to show stats by not counting moved files?

I would like to have stats without considering the moved files.

You can achieve something like that when diffing with git diff -M

-M[<n>], --find-renames[=<n>]
 Detect renames. If n is specified, it is a threshold on the similarity index 
 (i.e. amount of addition/deletions compared to the file’s size). For example, 
 -M90% means git should consider a delete/add pair to be a rename if more than
 90% of the file hasn’t changed.

Can you let me know if it's something I can do with the current state of the tool or if it's something not supported at all?

Missing dependency

I tried to run this on a docker based on debian using jenkins on kubernetes.
I stumbled upon missing package: bsdmainutils
It includes the command: column
Please add it to the installation procedure

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.