As part of an effort to learn hands-on about DevStructure’s potential customers, I’ve started working with small companies helping with their Puppet infrastructure and general operational polish. It became quickly clear to me that tracking my time in TextMate was a losing proposition so I took a late evening to whip up Git Paid.
Git Paid includes three programs.
gpend(1) mark the beginning and end of a work session by making commits to a Git repository. By default, this repository is
~/.gitpaid but it can be overridden by the
GITPAID_REPO environment variable or the
-r option. Likewise the default branch is
master but it can be overridden by the
GITPAID_BRANCH environment variable or the
gpinvoice(1) tabulates the time spent in all work sessions and generates a nice work summary, which includes all the commit messages given to
gpend(1) with the
-m option. It respects that not all hours are billable so the
-t option to
gpend(1) will cause
gpinvoice(1) to count an arbitrary amount of time for that session. For example:
$ gpbegin -b client-name $ ... $ gpend -b client-name -m "Shaved the yak." $ gpbegin -b client-name $ gpend -b client-name -t 1:45 -m "Faked the time." $ gpinvoice -b client-name # Invoice Thu Jan 6 18:27:32 UTC 2011 from client-name branch of /home/vagrant/.gitpaid ## Work log Began: Thu, 6 Jan 2011 16:17:29 +0000 > Shaved the yak. Ended: Thu, 6 Jan 2011 17:47:42 +0000 Billed time: 1:30 Began: Thu, 6 Jan 2011 18:27:23 +0000 > Faked the time. Ended: Thu, 6 Jan 2011 18:27:25 +0000 Billed time (adjusted): 1:45 ## Summary Total billed time: 3:15
Git Paid on GitHub