Skip to content

Tool for analysis and visualization of git logs -Made during my second year of university --2020-- -

Notifications You must be signed in to change notification settings

kenzaOut16/Visulog

Repository files navigation

Visulog

Tool for analysis and visualization of git logs

Presentation

Visulog a tool for analyzing contributions from the members of a team working a a same given project hosted on a git repository. Its goal is to assist teachers for individual grading of students working as a team.

This tool can:

  • compute a couple of relevant indicators such as:
    • number of lines or characters added/deleted/changed
    • number of commits
    • number of merge commits
  • analyze the variations of these indicators in time: for instance sum then in a week, compute a daily average or an average in a sliding window, ...
  • visualize the indicators as charts (histograms, pie charts, etc.) embedded in a generated web page.

Already existing similar tools

Technical means

  • The charts are generated by a third party library (maybe a Java library generating pictures, or a javascript library which dynamically interprets the data).
  • The data to analyze can be obtained using calls to the git CLI. For instance "git log", "git diff --numstat", and so on.

Architecture

Visulog contains the following modules:

  • data types for storing raw data directly extracted from git history, with relevant parsers
  • a generator of numerical series (for the indicators mentioned above)
  • a generator of web pages
  • a command line program that calls the other modules using the provided command line parameters
  • a shared module for configuration object definitions

Usage

Building the project

  1. clone the repository

  2. Enter the project folder

    cd visulog
    
  3. run gradle wrapper (it will download all dependencies, including gradle itself)

    ./gradlew build
    

Running the software

Currently, it can be run through gradle too. In order to pass program arguments, you need to pass them behind --args:

./gradlew run --args='here are my args'

NOTE: -r to specify the repository to analyze is mandatory, we will set it to . in examples, to examine the visulog repo in itself.

For instance with a short argument :

./gradlew run --args='-a countCommits -r .'

Or with a long argument :

./gradlew run --args='--addPlugin countCommits -r .'

Will count the commits of each author in the current branch of the git repository present in the current folder (".").

If you want to run several plugins at the same time, add them separated by a space:

./gradlew run --args='-a countCommits commitsPerDay -r .'

Plugins

  • mergesPerAuthor lists the number of merge commits per author
  • countCommits counts the number of commits per author
  • commitsPerDay counts the number of commits per day

Some plugins have visual charts, using chartist. Note that you will have to import it if you use a custom template

  • commitsPerAuthorChart is a rework of commitsPerDay to make a chart out of it.
  • signedCommitsProportion shows a donut chart of the number of commits that have been signed with a gpg key

About

Tool for analysis and visualization of git logs -Made during my second year of university --2020-- -

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published