ANN: git-monitor

John Wiegley johnw at
Thu Jan 22 18:41:49 UTC 2015

git-monitor auto-commits all changes to a Git working tree, within a special
branch named "refs/snapshots/refs/heads/<branch>".  It has no impact on the
Git repository otherwise, and will not effect your real branches.

It has the following features:

  - It is designed to be extremely resource efficient, both in CPU cost and
    memory.  I wanted something I could run several instances of on my laptop,
    without paying much of a battery cost.

    This efficiency is achieved by using gitlib with the libgit2 backend.  The
    current state of the working tree is maintained as a Git object in memory,
    and is updated in place before being written back out to disk.  Thus, the
    amount of computation done remains minimal, as we do not need to rebuild
    the Git tree at each iteration (as "git-commit" would do).

  - Whenever git-monitor is exited and restarted, the previous snapshot
    "branch" is discarded.  These are only intended to be viable during and
    between runs.

  - By having such a branch, you can easily browse through the diffs of your
    changes throughout the day.

By default, every action taken is printed to the console where git-monitor is
run, but it can also be run in silent mode, for example if you choose to
background it for the rest of the day.

Please report issues to the GitHub page.  I have been using git-monitor on a
regular basis for more than a year now, so I felt it finally deserved an
announcement here.

Thank you,
  John Wiegley (johnw on IRC/freenode)

More information about the Glasgow-haskell-users mailing list