{"id":16589251,"url":"https://github.com/coldfix/git-punchcard","last_synced_at":"2025-10-29T09:31:49.256Z","repository":{"id":49151817,"uuid":"175074879","full_name":"coldfix/git-punchcard","owner":"coldfix","description":"Simple git punchcard utility, inspired by git-punchcard-plot but rewritten for python3 with matplotlib","archived":false,"fork":false,"pushed_at":"2023-12-11T07:34:00.000Z","size":90,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T00:31:48.156Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coldfix.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-03-11T20:00:14.000Z","updated_at":"2023-10-11T17:14:46.000Z","dependencies_parsed_at":"2023-12-11T08:43:11.992Z","dependency_job_id":null,"html_url":"https://github.com/coldfix/git-punchcard","commit_stats":{"total_commits":66,"total_committers":2,"mean_commits":33.0,"dds":"0.015151515151515138","last_synced_commit":"19f90040edd72a0a4263d05ea77f47bd04252b47"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coldfix%2Fgit-punchcard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coldfix%2Fgit-punchcard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coldfix%2Fgit-punchcard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coldfix%2Fgit-punchcard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coldfix","download_url":"https://codeload.github.com/coldfix/git-punchcard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238803233,"owners_count":19533275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T23:08:19.000Z","updated_at":"2025-10-29T09:31:43.928Z","avatar_url":"https://github.com/coldfix.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"git-punchcard\n=============\n\nSimple git punchcard utility, inspired by git-punchcard-plot_ but rewritten\nfor python3 with matplotlib.\n\n.. _git-punchcard-plot: https://github.com/guanqun/git-punchcard-plot\n\n|Screenshot|\n\n\nInstallation\n~~~~~~~~~~~~\n\nInstall or upgrade from PyPI_ as follows:\n\n.. code-block:: bash\n\n    pip install --user --upgrade git-punchcard[gui]\n\nAlso, make sure that ``$HOME/.local/bin`` is in ``$PATH``.\n\nTo avoid conflicts with other packages, I recommend installing into an\nisolated environment, e.g. using pipx_:\n\n.. code-block:: bash\n\n    pipx install git-punchcard[gui]\n\n.. _PyPI: https://pypi.org/project/git-punchcard\n.. _pipx: https://github.com/pipxproject/pipx\n\n\nUsage\n~~~~~\n\nBasic usage:\n\n.. code-block:: bash\n\n    git punchcard\n\nAdditional arguments can be specified as follows:\n\n.. code-block:: bash\n\n    git punchcard [\u003cinput path\u003e...] [\u003coptions\u003e]\n                  [--] [\u003clog options\u003e] [\u003crevision range\u003e] [-- \u003cpath\u003e...]\n\nFor more help on available options, type:\n\n.. code-block:: bash\n\n    git punchcard -h            # [options]\n    git help log                # [log options]\n    git help gitrevisions       # [revision]\n\n\nOptions\n~~~~~~~\n\nThe most common builtin options are:\n\n.. code-block:: bash\n\n    # use a fixed timezone for all commits:\n    git punchcard --timezone CET\n    git punchcard --timezone Europe/Berlin\n    git punchcard --timezone UTC+02:30\n\n    # show punchcard with specified y/x axes:\n    git punchcard -p year/month\n    git punchcard -p wday/month\n\n    # histogram with specified x axis:\n    git punchcard -p /wday\n\n    # set the directory of the git repository (multiple allowed):\n    git punchcard /path/to/repo\n\n    # analyze all repositories in ~/dev:\n    git punchcard ~/dev/*/.git\n\n    # read commit dates from stdin:\n    git punchcard -\n\n    # show a github-like punchcard plot with grid:\n    git punchcard --grid\n\nBy default, each commit's local timezone is used for the plot. If setting a\nfixed timezone, it should be specified in terms of the timezone name (e.g.\n``CET`` or ``Europe/Berlin``), but can also given by `ISO 3166 country code`\nor country name (if the timezone is ambiguous we will pick the first entry).\n\n.. _ISO 3166 country code: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n\n\ngit log options\n~~~~~~~~~~~~~~~\n\nAdditionally, you can pass any options understood by ``git log`` to e.g.\nrestrict the range of commits and limit to commits performed by a certain\nauthor:\n\n.. code-block:: bash\n\n    # include only commits by specific author:\n    git punchcard --author=myself\n\n    # consider only only the 20 commits:\n    git punchcard master~20..master\n\n    # commits within a certain time frame:\n    git punchcard --since=\"1 year ago\" --until=now\n\n    # show at which times a certain file/folder is usually edited:\n    git punchcard --follow -- README.rst docs\n\n    # show at which times, people like to merge:\n    git punchcard --merges\n\n\nAdvanced example\n~~~~~~~~~~~~~~~~\n\nTrack evolution of commit activity over the years:\n\n.. code-block:: bash\n\n    for year in {2016..2019}; do\n        git punchcard -o $year.png --title $year \\\n            --since 1.1.$year --until 31.12.$year\n    done\n\n\n.. resources:\n\n.. |Screenshot| image:: https://raw.githubusercontent.com/coldfix/git-punchcard/master/screenshot.png\n   :target:             https://raw.githubusercontent.com/coldfix/git-punchcard/master/screenshot.png\n   :alt:                Screenshot\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoldfix%2Fgit-punchcard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoldfix%2Fgit-punchcard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoldfix%2Fgit-punchcard/lists"}