Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Gtm | 795 | 4 years ago | 25 | August 02, 2019 | 42 | mit | Go | |||
Simple, seamless, lightweight time tracking for Git | ||||||||||
Glass | 594 | 3 years ago | 8 | July 14, 2015 | 32 | mpl-2.0 | Go | |||
Automated time tracking for Git repositories. [DEPRECATED] | ||||||||||
Recallgraph | 310 | 5 months ago | 10 | apache-2.0 | JavaScript | |||||
A versioning data store for time-variant graph data. | ||||||||||
Git Punchcard Plot | 156 | 3 years ago | 5 | Python | ||||||
a tool to visualize the time distribution of commits | ||||||||||
Git_time_extractor | 95 | 6 | 8 years ago | 6 | May 21, 2015 | 7 | Ruby | |||
Analyzes Git repository commit logs to compute developer working hours, weekly activity, and to detect death marches in software development. | ||||||||||
Clockout | 63 | 8 years ago | 3 | mit | Ruby | |||||
Log your hours worked using Git | ||||||||||
Gitpaid | 63 | 12 years ago | Shell | |||||||
The programmer's time tracker | ||||||||||
Darkyenustimetracker | 43 | 18 days ago | 15 | unlicense | Java | |||||
Lightweight time tracker for IntelliJ platform IDEs | ||||||||||
Git Time Lapse | 26 | 9 months ago | Vim Script | |||||||
Fork of git-time-lapse: Perforce-style for vim/neovim | ||||||||||
Git Basecamp | 23 | 13 years ago | Ruby | |||||||
Git post-commit hook to transparently log dev time to Basecamp |
This is a small script to visualize the time when commits are committed in a git repository. The idea is stolen from Github's punchcard picture(Kudos to Github)!
Here's the generated picture from MongoDB project:
$ ./git-punchcard
Provides the punchcard of the git repository at .
git
repository$ ./git-punchcard path=/media/username/code/project
$ ./git-punchcard file=output-1.png
$ ./git-punchcard width=2000
$ ./git-punchcard opaque=0
In the normal mode, the opacity of the punch marks is dependent on the size of the punch mark. If you set opaque=0, then all the punches will be the same color. The size will be the only indication of the number of commits in that particular range.
$ ./git-punchcard timezone=+8.5
Convert all the commit times to UTC+8.5. This is useful if the project has contributors across the world and you want to find a common window of time when all contributors are working.
You can pipe git options to the script using the flag gitopts
Following are only examples, any valid options that can be given to log can be
piped to git-punchcard
# Show a punchcard of commits from 1st January
$ ./git-punchcard gitopts="--since='1st January 2017'"
# Show a punchcard of commits from the last month
$ ./git-punchcard gitopts="--since='1 month ago'"
# Show a punchcard of commits before a particular date
$ ./git-punchcard gitopts="--before='2nd January 2016'"
# Show a punch of commits before some period
$ ./git-punchcard gitopts="--before='1 month ago'"
It shows how this repository is developed in developer's time. As I see it, I can get a simple clue whether a project is a spare time project or this project is totally under a company's control, thus resulting in commits from 8AM to 6PM, Monday to Friday.
Then you're free to go!
cp git-punchcard /usr/local/bin
/usr/local/bin
is in your $PATH
environment variable.git punchcard
output.png
, that's the generated image.If you want a different name, then simply invoke git punchcard file=<another-name.png>
.
The default width of a picture is 1100px. If you'd like
to have a higher resolution, you can run git punchcard file=<another-name.png> width=<new-width>
.
If you would like to filter by a particular author then do so as follows. (all parameters are available)
git punchcard author=<authorname>
The image gets scaled automatically.
This project is under public domain, you can do whatever you want ;) However, if you're improving this tool a bit, you can freely fork it and then send me back a pull request. I would be very glad to integrate it.