Project

git_stats

0.48
No release in over 3 years
Low commit activity in last 3 years
There's a lot of open issues
Git history statistics generator
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 0.11
~> 12.0
~> 3.4
~> 0.11

Runtime

~> 5.0
~> 0.8
~> 2.1
~> 0.20
~> 2.0
 Project Readme

GitStats Build Status Build Status

GitStats is a git repository statistics generator. It browses the repository and outputs html page with statistics.

Examples

Installation

Existing ruby/gem environment

$ gem install git_stats

debian stretch (9.*)

# apt-get install ruby ruby-nokogiri ruby-nokogiri-diff ruby-nokogumbo
# gem install git_stats

Ubuntu

$ sudo apt-get install ruby ruby-dev gcc zlib1g-dev make
$ sudo gem install git_stats

Usage

Generator

Print help

$ git_stats
Commands:
  git_stats generate        # Generates the statistics of a repository
  git_stats help [COMMAND]  # Describe available commands or one specific command

Print help of the generate command

$ git_stats help generate
Usage:
  git_stats generate

Options:
  p, [--path=PATH]                          # Path to repository from which statistics should be generated.
                                            # Default: .
  o, [--out-path=OUT_PATH]                  # Output path where statistics should be written.
                                            # Default: ./git_stats
  l, [--language=LANGUAGE]                  # Language of written statistics.
                                            # Default: en
  f, [--first-commit-sha=FIRST_COMMIT_SHA]  # Commit from where statistics should start.
  t, [--last-commit-sha=LAST_COMMIT_SHA]    # Commit where statistics should stop.
                                            # Default: HEAD
  s, [--silent], [--no-silent]              # Silent mode. Don't output anything.
  d, [--tree=TREE]                          # Tree where statistics should be generated.
                                            # Default: .
  c, [--comment-string=COMMENT_STRING]      # The string which is used for comments.
                                            # Default: //

Generates the statistics of a repository

Start generator with default settings

$ git_stats generate
  git rev-list --pretty=format:'%h|%at|%ai|%aE' HEAD | grep -v commit
  git shortlog -se HEAD
  ...

Start generator with some parameters in long and short form.

$ git_stats generate -o stats --langugage de
  git rev-list --pretty=format:'%h|%at|%ai|%aE' HEAD | grep -v commit
  git shortlog -se HEAD
  ...

API usage example

> repo = GitStats::GitData::Repo.new(path: '.', first_commit_sha: 'abcd1234', last_commit_sha: 'HEAD')
> repo.authors
=> [...]
> repo.commits
=> [...]
> commit.files
=> [...]

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request