Package: git-punchcard
git-punchcardSimple git punchcard utility, inspired bygit-punchcard-plotbut rewritten
for python3 with matplotlib.InstallationInstall or upgrade fromPyPIas follows:pipinstall--user--upgradegit-punchcard[gui]Also, make sure that$HOME/.local/binis in$PATH.To avoid conflicts with other packages, I recommend installing into an
isolated environment, e.g. usingpipx:pipxinstallgit-punchcard[gui]UsageBasic usage:gitpunchcardAdditional arguments can be specified as follows:gitpunchcard[<inputpath>...][<options>][--][<logoptions>][<revisionrange>][--<path>...]For more help on available options, type:gitpunchcard-h# [options]githelplog# [log options]githelpgitrevisions# [revision]OptionsThe most common builtin options are:# use a fixed timezone for all commits:gitpunchcard--timezoneCETgitpunchcard--timezoneEurope/Berlingitpunchcard--timezoneUTC+02:30# show punchcard with specified y/x axes:gitpunchcard-pyear/monthgitpunchcard-pwday/month# histogram with specified x axis:gitpunchcard-p/wday# set the directory of the git repository (multiple allowed):gitpunchcard/path/to/repo# analyze all repositories in ~/dev:gitpunchcard~/dev/*/.git# read commit dates from stdin:gitpunchcard-# show a github-like punchcard plot with grid:gitpunchcard--gridBy default, each commit’s local timezone is used for the plot. If setting a
fixed timezone, it should be specified in terms of the timezone name (e.g.CETorEurope/Berlin), but can also given byISO 3166 country codeor country name (if the timezone is ambiguous we will pick the first entry).git log optionsAdditionally, you can pass any options understood bygit logto e.g.
restrict the range of commits and limit to commits performed by a certain
author:# include only commits by specific author:gitpunchcard--author=myself# consider only only the 20 commits:gitpunchcardmaster~20..master# commits within a certain time frame:gitpunchcard--since="1 year ago"--until=now# show at which times a certain file/folder is usually edited:gitpunchcard--follow--README.rstdocs# show at which times, people like to merge:gitpunchcard--mergesAdvanced exampleTrack evolution of commit activity over the years:foryearin{2016..2019};dogitpunchcard-o$year.png--title$year\--since1.1.$year--until31.12.$yeardoneChanges2.0.4Date: 28.10.2021add pyqt as optionalguidependency, e.g.:pip installgit-punchcard[gui]migrate from Travis CI to GitHub Actions2.0.3Date: 31.10.2019include license file in source distribution2.0.2Date: 31.10.2019automatic deploymentschanges in setup and testing2.0.1Date: 26.03.2019fix: default to current directory if no input pathes were passed by the user2.0.0Date: 26.03.2019turn-Cinto positional argument, remove-Coptionallow multiple input filesallow passing-and files withgit logoutput as input filesremove obsolete dependency on docoptallow passing country codes and names instead of timezone (using first
available timezone in case of ambiguity)match timezones case-insensitivelyshow git command and number of commitsshow error message without traceback for common errors1.4.0Date: 26.03.2019learn--periodY/Xparameter to specify Y/X axescan plot histograms by leaving one of the axes emptyunderstand-vas alias for--version1.3.0Date: 21.03.2019log options are now passed directly without--same as the other optionsdrop dependency on docopt1.2.0Date: 21.03.2019fix setup.py exception if called without runtime dependenciesimport pytz only if neededlearn a-CDIRparameter to pass the path to the git repositorylearn a--versionparameter to show the script versionfix error when passing options and git options at the same timeturn into a module and use setuptools entry_points to generate script1.1.0Date: 11.03.2019add--titleparameter