Gitaura

A simple commit visualization and repo analysis tool for git

pip install gitaura
View on PyPI →

Overview

gitaura is a Python utility that uses git log to produce bar-graph visualizations of commit activity. It also provides file analysis (churn, hotspots, refactor density), branch insights (divergence, lifetime, merges), and a "where do I work most?" directory map. Weekend commits are highlighted in blue in the default view. Licensed under the MIT License.

python gitaura.py [options]
# or, if installed
gitaura [options]

Default: commit bars

With no extra flags, gitaura shows a bar graph of commits grouped by period (default: month). Each bar length is proportional to the number of commits, normalized within the visible range.

Global options

These options apply to the default view and many other commands.

-p, --periodicity
Group by day, week, month, or year. Default: month.
-u, --author
Filter by author email (substring match).
-a, --after
Only include commits after this date (yyyy-mm-dd hh:mm).
-b, --before
Only include commits before this date (yyyy-mm-dd hh:mm).
-r, --reverse
Reverse the date order in the output.
-f, --fill
Fill missing dates with zero-commit bars on the graph.
--main
Specify the main branch for divergence/lifetime/merge-timeline. Default: main or master.

File analysis

File type breakdown (--files)

Shows file changes by type (JS, TS, MD, etc.) as percentages with a bar visualization. Counts each file mention per commit in the history.

gitaura --files
gitaura --files -a "2024-01-01" -u "alice"

File churn (--churn)

Ranks files by total lines changed (adds + dels). Shows the most frequently modified files.

gitaura --churn

Hotspots (--hotspots)

Detects files with high churn and many contributors — likely areas of shared or contentious work. Use --min-churn to set the minimum churn (default: 50).

gitaura --hotspots
gitaura --hotspots --min-churn 100

Refactor density (--refactor)

Estimates refactoring by treating balanced add/delete pairs as refactor-like changes. Reports an overall repo percentage and per-file density.

gitaura --refactor

Branch features

Active branches (--branches)

Lists branches ranked by most recent commit (e.g. "today", "3 days ago").

gitaura --branches

Stale branches (--stale)

Shows branches with no commits in the last N days. Use --stale-days (default: 30).

gitaura --stale
gitaura --stale --stale-days 60

Branch divergence (--divergence)

Shows ahead/behind counts for each branch vs main.

gitaura --divergence
gitaura --divergence --main develop

Branch lifetime (--branch-lifetime)

Shows how long each merged branch lived (creation → merge).

gitaura --branch-lifetime

Merge timeline (--merges)

Merge frequency over time (grouped by period).

gitaura --merges -p week

Merge events (--merge-timeline)

Chronological list of merge events (date + branch name).

gitaura --merge-timeline

Compare branches (--compare A B)

Compares two branches: unique commits, files changed, lines added/deleted, authors.

gitaura --compare main feature-x

Work map (--work-map)

"Where do I work most?" — directory breakdown by commit activity and churn. Shows which folders you touch most often.

gitaura --work-map
gitaura --work-map -u "me@example.com"

Quick reference

Flag Description
-p day|week|month|yearGroup by period
-u <author>Filter by author
-a <date>Commits after date
-b <date>Commits before date
--filesFile type breakdown
--churnMost modified files
--hotspotsHigh churn + many contributors
--refactorRefactor density estimate
--min-churn NMin churn for hotspots (default: 50)
--branchesActive branches by recency
--staleStale branches (no commits in N days)
--stale-days NStale threshold (default: 30)
--divergenceAhead/behind vs main
--branch-lifetimeBranch creation → merge duration
--mergesMerge frequency timeline
--merge-timelineChronological merge events
--compare A BCompare two branches
--work-mapDirectory activity map
--main <branch>Main branch for divergence/lifetime