⚠ This version of Gitinspector is a work-in-progress fork of the original gitinspector. It integrates a series of features and modifications from the original code, the list of which shall eventually appear on this page one day. The links in the remainder of this page point to the original program. ⚠
Gitinspector is a statistical analysis tool for git repositories. The default analysis shows general statistics per author, which can be complemented with a timeline analysis that shows the workload and activity of each author. Under normal operation, it filters the results to only show statistics about a number of given extensions and by default only includes source files in the statistical analysis.This tool was originally written to help fetch repository statistics from student projects in the course Object-oriented Programming Project (TDA367/DIT211) at Chalmers University of Technology and Gothenburg University.
Today, gitinspector is used as a grading aid by universities worldwide.
A full Documentation of the usage and available options of gitinspector is available on the wiki. For help on the most common questions, please refer to the FAQ document.
- Shows cumulative work by each author in the history.
- Filters results by extension (default: java,c,cc,cpp,h,hh,hpp,py,glsl,rb,js,sql).
- Can display a statistical timeline analysis.
- Scans for all filetypes (by extension) found in the repository.
- Multi-threaded; uses multiple instances of git to speed up analysis when possible.
- Supports HTML, JSON, XML and plain text output (console).
- Can report violations of different code metrics.
Syntax:
gitinspector.py --help
Basic usage with a plain text output:
gitinspector.py
Advanced usage with a HTML output:
gitinspector.py \
--since 2018-03-01 \
--exclude file_out:libraries/,file_out:^vendor/,file_out:zwibbler2,file_out:jstree \
--file-types "*.css,*.js,*.php,*.sql" \
--branch master \
--grading \
--format=html \
> gitinspector.html
Below are some example outputs for a number of famous open source projects. All the statistics were generated using the "-HTlrm" flags.
Project name | ||||
---|---|---|---|---|
Django | HTML | HTML Embedded | Plain Text | XML |
JQuery | HTML | HTML Embedded | Plain Text | XML |
Pango | HTML | HTML Embedded | Plain Text | XML |
- Adam Waldenberg, Lead maintainer and Swedish translation
- Agustín Cañas, Spanish translation
- Bart van Andel, npm package maintainer
- Bill Wang, Chinese translation
- Christian Kastner, Debian package maintainer
- Jiwon Kim, Korean translation
- Kamila Chyla, Polish translation
- Luca Motta, Italian translation
- Philipp Nowak, German translation
- Sergei Lomakov, Russian translation
- Yannick Moy, French translation
We need translations for gitinspector! If you are a gitinspector user, feel willing to help and have good language skills in any unsupported language we urge you to contact us. We also happily accept code patches. Please refer to Contributing for more information on how to contribute to the project.
The Debian packages offered with releases of gitinspector are unofficial and very simple packages generated with stdeb. Christian Kastner is maintaining the official Debian packages. You can check the current status on the Debian Package Tracker. Consequently, there are official packages for many Debian based distributions installable via apt-get.
An npm package is provided for convenience as well. To install it globally, execute npm i -g gitinspector
.
gitinspector is licensed under the GNU GPL v3. The gitinspector logo is partly based on the git logo; based on the work of Jason Long. The logo is licensed under the Creative Commons Attribution 3.0 Unported License.