Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deamon Revamp #41

Merged
merged 67 commits into from
Jul 5, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
0b19f22
continue [spent 1m10s]
advdv Jun 10, 2015
3feee7e
finally got basic service working on osx [spent 1m0s]
advdv Jun 17, 2015
a77e6c1
vendored windows service code [spent 32m0s]
advdv Jun 18, 2015
5602f38
fixed error message [spent 9m0s]
advdv Jun 18, 2015
b64f259
testing
advdv Jun 28, 2015
df24547
finally consistent service behaviour between platforms
advdv Jun 29, 2015
4be335a
added web server
advdv Jun 29, 2015
8246528
basic timer reimplemented and tested
advdv Jun 30, 2015
b926d71
endpoints for timer creation
advdv Jun 30, 2015
38761f4
renamed from project to timer, and no longer requires an explicit con…
advdv Jun 30, 2015
562c94a
created basic install command
advdv Jun 30, 2015
f3df96c
glass install& glass init command with new daemonNo help topic for 's…
advdv Jun 30, 2015
f03a830
readded start and stopNo help topic for 'status'
advdv Jun 30, 2015
cfadef4
added timers info endpointNo help topic for 'status'
advdv Jun 30, 2015
1040164
turn commands into behaving posix citizensIncorrect Usage.
advdv Jun 30, 2015
1cbbbc6
new post commit with formatted status piped into punch [spent 1h11m0s]
advdv Jun 30, 2015
5ed1e32
implemented reset endpoint for timer [spent 1m0s]
advdv Jun 30, 2015
43211bb
fixed post commit hook [spent 6m0s]
advdv Jun 30, 2015
5f59b46
removed backup versions [spent 5m0s]
advdv Jun 30, 2015
02044b8
vendored issatty [spent 7m0s]
advdv Jun 30, 2015
7e9c4ed
reimplemented pause command [spent 19m0s]
advdv Jun 30, 2015
cd485f7
now includes a failing state for the timer [spent 28m0s]
advdv Jul 1, 2015
4cfeaea
added configurable mbu [spent 31m20s]
advdv Jul 1, 2015
50dca6e
now possible to reload project config by stop and starting the timer …
advdv Jul 1, 2015
9b637f9
fixed daemon tests [spent 19m50s]
advdv Jul 1, 2015
ceeebdd
more intelligently determine default git remote, no longer error when…
advdv Jul 1, 2015
14663ae
testing interactive commit [spent 17m30s]
advdv Jul 1, 2015
d50ccc8
prepcommit tmpl now supports interactive commit messages [spent 1m10s]
advdv Jul 1, 2015
fc114e7
windows build now creates binaries with exe suffix [spent 12m50s]
advdv Jul 1, 2015
99809f1
removed old model structure and dependency on boltdb [spent 19m50s]
advdv Jul 1, 2015
a3d97ae
better printing of normal status command [spent 10m30s]
advdv Jul 1, 2015
726a136
refactored --from-hook from push command [spent 17m30s]
advdv Jul 1, 2015
a164b70
reimplemented version check [spent 19m50s]
advdv Jul 1, 2015
e525dd9
use actual version fields [spent 1m10s]
advdv Jul 1, 2015
081e5ed
readded cli command descriptions [spent 42m0s]
advdv Jul 1, 2015
70e6887
now possible to run glass commands from any folder in the git reposit…
advdv Jul 1, 2015
06d73c6
edited version to signify backwards incompatibility [spent 3m30s]
advdv Jul 1, 2015
ef01a84
started on functional test suite [spent 12m50s]
advdv Jul 1, 2015
b948364
finally created consistent test results between platforms [spent 6h44…
advdv Jul 2, 2015
a7c1f08
removed two old dependencies [spent 3m30s]
advdv Jul 2, 2015
741dd85
normalized name for osx conventions [spent 23m20s]
advdv Jul 2, 2015
3883363
added uninstall command [spent 8m10s]
advdv Jul 2, 2015
531430d
better error reporting for common obstacles [spent 14m0s]
advdv Jul 2, 2015
683c571
just cleaning [spent 7m0s]
advdv Jul 2, 2015
81c3397
basic windows installer using wix [spent 2h1m20s]
advdv Jul 2, 2015
6f0c315
ignore installer files [spent 1m10s]
advdv Jul 2, 2015
8f3eed3
removed temp files [spent 1m10s]
advdv Jul 2, 2015
50db084
windows installer now sets the correct PATH [spent 25m40s]
advdv Jul 2, 2015
5ef7250
installer now takes care of starting windows services [spent 42m0s]
advdv Jul 2, 2015
1f684c6
moved to dirname that describes the format instead of the platform, w…
advdv Jul 2, 2015
25dd2c5
started on documentation updates [spent 57m10s]
advdv Jul 3, 2015
8a8722c
finished manual installation guide [spent 35m0s]
advdv Jul 3, 2015
23f5f6a
first working installer for osx [spent 5m50s]
advdv Jul 4, 2015
6e0a3c6
added installers to release pipeline [spent 25m40s]
advdv Jul 4, 2015
9691a32
added cross packaging [spent 11m40s]
advdv Jul 4, 2015
338f234
updated confusing error message
advdv Jul 4, 2015
3518d41
better uninstall instructions
advdv Jul 5, 2015
e69869c
pre commit output is now supressed for less verbose commit experience
advdv Jul 5, 2015
bd58222
even less verbose [spent 1m0s]
advdv Jul 5, 2015
03421ca
...
advdv Jul 5, 2015
f9533a0
added the possiblity to specify system wide default configuration [sp…
advdv Jul 5, 2015
58690fb
added new configuration possibility to the docs [spent 11m40s]
advdv Jul 5, 2015
3db2037
vendored mergo [spent 9m20s]
advdv Jul 5, 2015
9018a23
fixed make file for creating releases [spent 8m10s]
advdv Jul 5, 2015
03d8f2b
more build script fixes [spent 29m10s]
advdv Jul 5, 2015
cde6f90
functional testing [spent 10m30s]
advdv Jul 5, 2015
01e32b1
fixed faulty script for creating windows installer [spent 17m30s]
advdv Jul 5, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Mozilla Public License, version 2.0


1. Definitions

1.1. "Contributor"
Expand Down
44 changes: 21 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,27 @@ Fully automated time tracking for Git repositories. It uses hooks and file monit

__Features:__

- The timer __automatically starts__ when you switch to a (new) branch using `git checkout`
- The timer __automatically starts__ when you switch to a (new) branch using `git checkout` or upon detecting any file activity 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 1m.
- Spent time is stored as metadata using [git-notes](https://git-scm.com/docs/git-notes) and pushed automatically

- 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](https://git-scm.com/docs/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
1. Download the [latest release](https://github.com/timeglass/glass/releases/latest) for your platform and unzip the contents into a directory that is in your systems PATH (e.g /usr/local/bin).
1. Download and install the latest release using any one of your preferred methods:

1. Automatic [installers](https://github.com/timeglass/glass/releases/latest) for 64bit _OSX_ and _Windows_
2. [Manual installion](/docs/manual_installation.md) with 64bit precompiled Binaries for OSX, Linux and Windows
3. [Manual installion](/docs/manual_installation.md) by __building from source__ for all other architectures

_Note 1: We currently only support 64-bit prebuild binaries, for other architectures please build from source (see below)._
_Note 2: For Windows, the documentation assumes you're using Git through a [bash-like CLI](https://msysgit.github.io/) but nothing about the implementation prevents you from using another approach._
_Note: For Windows, the documentation assumes you're using Git through a [bash-like CLI](https://msysgit.github.io/) but nothing about the implementation prevents you from using another approach._

2. Use your terminal to navigate to the repository that contains the project you would like to track and install the hooks:
2. Use your terminal to navigate to the repository that contains the project you would like to track and then initiate Timeglass:

```sh
cd ~/my-git-project
Expand All @@ -33,9 +35,16 @@ __Currently Supported:__

_NOTE: you'll have to run this once per clone_

3. Start the timer by creating a new branch:
3. The timer starts right away but will pause soon unless it detects file activity or the checkout of a branch:

```sh
# 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

# or branches are checked out
git checkout -b "testing_timeglass"
```

Expand All @@ -49,7 +58,7 @@ __Currently Supported:__
5. Verify that the time was indeed registered correctly by looking at your commit log:

```sh
git log -n 1
git log -n 1 --show-notes=time-spent
```

## What's Next?
Expand All @@ -63,25 +72,14 @@ And ofcourse, you'll always have the options to uninstall:

- [Uninstalling Timeglass](/docs/uninstall.md)

## Building from Source
First, you'll need install the go toolchain, instructions are [here](https://golang.org/doc/install). With Go installed you can simply run `go get` for _both_ binaries:

```
go get -u github.com/timeglass/glass
go get -u github.com/timeglass/glass/glass-daemon
```

The source code will now be in your workspace and binaries are found in `$GOPATH/bin`, happy hacking!

## Roadmap, input welcome!

- __Supporting Other VCS:__ Timeglass currently only works for git repositories, mainly due to the number of hooks it provides. _What other version control systems would you like to see implemented? Input welcome [here](https://github.com/Timeglass/glass/issues/10)_
- __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](https://github.com/Timeglass/glass/issues/10)_

## 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](https://github.com/Timeglass/glass/issues/3)
- __OS Restarts:__ Whenever the OS shuts down the repository might still contain uncommited work and a running timer, currently the timer is not restarted when this happens. _Input on how to achieve this is welcome [here](https://github.com/Timeglass/glass/issues/8)_
- __Network Volumes:__ Projects that are kept on network volumes (e.g using NFS) are known to have flaky support for file monitoring, especially on Linux (using inotify). This means automatic unpausing of the timer when editing a file 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](https://github.com/timeglass/glass/issues/36)
- __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](https://github.com/timeglass/glass/issues/36)

## Contributors
in alphabetical order:
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.5.2
0.6.0
3 changes: 0 additions & 3 deletions _vendor/github.com/boltdb/bolt/.gitignore

This file was deleted.

20 changes: 0 additions & 20 deletions _vendor/github.com/boltdb/bolt/LICENSE

This file was deleted.

54 changes: 0 additions & 54 deletions _vendor/github.com/boltdb/bolt/Makefile

This file was deleted.

Loading