Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

commit-mirror

An honest mirror of your git habits — stats and jabs from your own commits.

$ commit-mirror
commit-mirror

  total commits      247
  unique authors     3
  time span          412 days
  avg subject words  3.2
  short subjects     108 (≤3 words)

conventional prefixes
  187/247 commits use prefixes (76%)
    fix        ████████████████████ 71
    feat       █████████████        46
    chore      ████████             29
    refactor   █████                18
    docs       ███                  12
    test       ██                   11

when you commit
    Mon  ████████████         34
    Tue  ████████████████     46
    Wed  ████████████████████ 58
    Thu  ███████████████      44
    Fri  ██████████           29
    Sat  ████                 14
    Sun  ██████               22

hours of day (UTC)
    ...
    22h ████████          18
    23h ██████████        22
    00h ████████          17
    01h ██████            13

the mirror speaks
  • 29% of commits are fixes — your codebase is held together by hope and the word `fix`
  • average subject 3.2 words. Future-you is going to hate present-you
  • 70 commits between 22:00 and 05:00. sleep is a feature, not a bug
  • 76% of commits use conventional prefixes. someone here reads the docs

A small tool that reads git log in any repo and tells you what it sees: prefixes you use, hours you work, ratio of fix: commits, and a few lines of unsolicited feedback.

Install

pip install commit-mirror

Python 3.9+. No dependencies beyond the standard library.

Use

commit-mirror                 # analyze current dir
commit-mirror ~/code/myrepo   # any path
commit-mirror -n 100          # last 100 commits only
commit-mirror --seed 42       # deterministic jabs (for CI / screenshots)

Use as a library

from commit_mirror import analyze_repo

stats = analyze_repo("~/code/myrepo")
print(stats.total, stats.fix_ratio, stats.busiest_weekday)

CommitStats exposes: total, authors, prefixes, by_hour, by_weekday, avg_subject_words, short_subjects, fix_ratio, night_owl_count, weekend_warrior_count, busiest_weekday, busiest_hour.

Why

Because the truest summary of your engineering year is in your commit log, and nobody ever looks at it. Run this once a quarter. Write better commits.

Development

git clone https://github.com/stix2112333-stack/commit-mirror
cd commit-mirror
pip install -e ".[dev]"
pytest

License

MIT.

About

An honest mirror of your git habits — stats and jabs from your own commits.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages