Awesome
Timeglass
Fully automated time tracking for Git repositories. It uses hooks and file monitoring to make sure you'll never forget to start or stop your timer ever again. It is written in Go and runs 100% on your own workstation: no internet or account registration required.
Features:
- The timer automatically starts when make any file changes in the repository
- The timer automatically pauses when it doesn't detect any file activity for a while
- The time you spent is automatically added to the next
git commit
- The timer increments in discreet steps: the minimal billable unit (MBU), by default this is 1 minute.
- Spent time is stored as metadata using git-notes and can be pushed and stored automatically to any remote repository (e.g Github)
Currently Supported:
- Platforms: OSX, Linux and Windows
- Version Control: Git
Getting Started
-
Download and install the latest release using any one of your preferred methods:
- Automatic installers for 64bit OSX and Windows
- Manual installion with 64bit precompiled Binaries for OSX, Linux and Windows
- Manual installion by building from source for all other architectures
Note: For Windows, the documentation assumes you're using Git through a bash-like CLI but nothing about the implementation prevents you from using another approach.
- Use your terminal to navigate to the repository that contains the project you would like to track and then initiate Timeglass:
cd ~/my-git-project
glass init
NOTE: you'll have to run this once per clone
- The timer starts right away but will pause soon unless it detects file activity or the checkout of a branch:
# see if the timer is running or paused:
glass status
# the timer keeps running while there is file activity
echo "pretending to work..." > ./my_file.go
- Edit some files, get a coffee, and commit in order to register the time you spent:
git add -A
git commit -m "time flies when you're having fun"
- Verify that the time was indeed registered correctly by looking at your commit log:
git log -n 1 --show-notes=time-spent
What's Next?
Now you know how to measure the time you are spending on each commit, you might want to learn more about...
And ofcourse, you'll always have the options to uninstall:
Roadmap, input welcome!
- Supporting Other VCS: Timeglass currently only works for git repositories, mainly due to the number of hooks it requires. What other version control systems would you like to see implemented? Input welcome here
Known Issues
- Handling
git stash
: Git has the ability to stash work for a later commit prior to switching branches. Currently the timer unable to detect this; adding extra time to next commit. Input welcome here - Network Volumes: Projects that are kept on network volumes (e.g using NFS) are known to have flaky support for file monitoring. This means timers might error on reboot as network drives weren't available, or the automatic unpausing of the timer might be broken in such projects. I'm looking for cases that experience such problem, or other information that might be of help over here
Contributors
in alphabetical order:
- Kristof Vannotten (kvannotten)
- Michael Mior (michaelmior)
- Micha Rosenbaum (rosetree)