git-based tool for tracking engineering time and tasks

55
5
Ruby

tlog

tlog is a git-based tool to help you with time and ticket tracking on your projects.

Installing

$ sudo gem install tlog

Usage

  • Navigate to a git repo
  • Create time logs for project tasks
  • Assign a time goal, owner, points value, or state to each time log
  • Track time working on a task
  • Collaborate by sharing time logs with other people working on your project

Create a time log

Create a default time log with no goal

$ tlog create example 

Create a time log with a time goal

$ tlog create example --goal 4hr

Create a new time log with a state and a points value

$ tlog create example --state OPEN --points 10

Using time logs

Check out a time log

$ tlog checkout example

Start a new task the checked-out time log

$ tlog start -d "My task description"

Update the state of the checked-out time log

$ tlog state CLOSED

Update the points value of the checked-out time log

$ tlog points 10

Update the owner of the checked-out time log

$ tlog owner cewendel

Stop the current task

$ tlog stop example

Stop the current task and commit your tracked changes to the current branch

$ tlog stop example -a -m "My commit message"

Use your task description as the commit message

$ tlog stop example -a 

Delete a time log

$ tlog delete example

Displaying time logs

Display all time logs

$ tlog display
Log:    bugfix
State:  open
Points: 10
Owner:  andrew
	Start               End                    Duration          Description
	June 06, 12:45PM   June 06, 12:46PM        1:00:27           fixing really bad bug
	June 07, 
----------------------------------------------------------------------------------------------------
	Total                                      1:00:27 
	Time left:                                 0:59:33
Log:    important
State:  closed
Points: 0
Owner:  chris
	Start               End                    Duration          Description
----------------------------------------------------------------------------------------------------
	Total                                      0:00:00 
Log:    feature1
State:  hold
Points: 5
Owner:  peter
	Start               End                    Duration          Description
	June 13, 12:32PM   June 13, 12:33PM        0:00:34           making sure new feature works
	June 13, 12:29PM   June 13, 12:32PM        0:02:30           working on new feature
----------------------------------------------------------------------------------------------------
	Total                                      0:03:04 
	Time left:                                 3:56:56

Show all time logs and label the checked-out log or the in-progress log

$ tlog all
All Time Logs:
testing
feature1(in-progress)
bug fix
feature2

Display a specific time log

$ tlog display feature1
Log:    feature1
State:  hold
Points: 5
Owner:  peter
	Start               End                    Duration          Description
	June 13, 12:32PM   June 13, 12:33PM        0:00:34           making sure new feature works
	June 13, 12:29PM   June 13, 12:32PM        0:02:30           working on new feature
----------------------------------------------------------------------------------------------------
	Total                                      0:03:04 
	Time left:                                 3:56:56

Constrain displayed time logs to only ones that have less than the specified amount of time left

$ tlog display -g 1hr
Log:    bugfix
State:  open
Points: 10
Owner:  andrew
	Start               End                    Duration          Description
	June 06, 12:45PM   June 06, 12:46PM        1:00:27           fixing really bad bug
----------------------------------------------------------------------------------------------------
	Total                                      1:00:27 
	Time left:                                 0:59:33

Constrain displayed time logs to only ones with specified states

$ tlog display -s open,hold
Log:    bugfix
State:  open
Points: 10
Owner:  andrew
	Start               End                    Duration          Description
	June 06, 12:45PM   June 06, 12:46PM        1:00:27           fixing really bad bug
----------------------------------------------------------------------------------------------------
	Total                                      1:00:27 
	Time left:                                 0:59:33
Log:    feature1
State:  hold
Points: 5
Owner:  peter
	Start               End                    Duration          Description
	June 13, 12:32PM   June 13, 12:33PM        0:00:34           making sure new feature works
	June 13, 12:29PM   June 13, 12:32PM        0:02:30           working on new feature
----------------------------------------------------------------------------------------------------
	Total                                      0:03:04 
	Time left:                                 3:56:56

Constrain displayed time logs to only ones with specified owners

$ tlog display -o chris,peter
Log:    important
State:  closed
Points: 0
Owner:  chris
	Start               End                    Duration          Description
----------------------------------------------------------------------------------------------------
	Total                                      0:00:00 
Log:    feature1
State:  hold
Points: 5
Owner:  peter
	Start               End                    Duration          Description
	June 13, 12:32PM   June 13, 12:33PM        0:00:34           making sure new feature works
	June 13, 12:29PM   June 13, 12:32PM        0:02:30           working on new feature
----------------------------------------------------------------------------------------------------
	Total                                      0:03:04 
	Time left:                                 3:56:56

Contrain displayed time logs to only ones that have points values >= the specified points value

$ tlog display -p 10
Log:    bugfix
State:  open
Points: 10
Owner:  andrew
	Start               End                    Duration          Description
	June 06, 12:45PM   June 06, 12:46PM        1:00:27           fixing really bad bug
	June 07, 
----------------------------------------------------------------------------------------------------
	Total                                      1:00:27 
	Time left:                                 0:59:33

Collaboration

tlog makes for easy time and ticket tracking when working with a team. Assuming you have a remote repo that you and others are pushing to, use the tlog push and tlog pull commands to keep your time logs up to date.

Pull in new or updated time logs from upstream

$ tlog pull

Push new or updated time logs upstream

$ tlog push

Contributing

Please look at the TODO for possible additional features. Use Github issues to track bugs and feature requests.

Licence

GNU GENERAL PUBLIC LICENCE Version 2