Giter Site home page Giter Site logo

gitmon's Introduction

GitMon - The Git Repository Monitor

Installation

Requirements:

  • Python 2.6+
  • Git
  • growlnotify (http://growl.info/), python-notify (for libnotify on linux) or a command line tool for notifications

To install without downloading source:

sudo easy_install gitmon

or from source folder:

sudo python setup.py install

When building from source, you may need to install gitpython (sudo easy_install gitpython).

Usage

usage: gitmon [-v] [--version] [-c <path>] [-h|--help]

Parameters:
  -v          Verbose output
  --version   Prints GitMon version
  -c <path>   Runs GitMon using configuration file provided in <path>
  -h, --help  Prints help

Commands:
              When no command is given, GitMon scans repositories for updates
  test        Checks configuration and displays test notification
  configure   Opens GitMon configuration file for editing

You have three options for placing your configuration file:

  1. Recommended approach: Run 'gitmon' after a fresh install and it will create you ~/.gitmon.conf, then run 'gitmon configure' to edit it
  2. Put gitmon.conf anywhere you want and define GITMON_CONF env variable ('gitmon configure' will not work though)
  3. Run gitmon with -c /path/to/config.file (useful during development)

Known Issues

  • When there is a large number of changes, growl notification may exceed desktop height therefore it gets not fully visible.

Roadmap

  • GUI version (at least for Mac OS X)

Contact

Suggestions, improvements? [email protected]

gitmon's People

Contributors

spajus avatar sleepynate avatar

Stargazers

Vilmara avatar Sergey Bronnikov avatar Ishaq Mohammed avatar Nicolay avatar  avatar Brian R Zaik avatar David avatar Dafydd Jones avatar Dylan Koji-Cheslin avatar  avatar  avatar Pei Qing 卿培 avatar Maxim Zhukov avatar Henrik Danielsson avatar sp1npx avatar Matt Oakes avatar Ramūnas Dronga avatar suziwen avatar Damon Haley avatar Jake Berger avatar Tom Hunter avatar  avatar James Myatt avatar Dan Ryan avatar william avatar Jacky Alciné avatar Douglas Soares de Andrade avatar  avatar Maciej Adamczak avatar Steven Huey avatar Lee McFadden avatar Jason Finch avatar Frank Becker avatar Jordi Rivero avatar Chris Adams avatar François Garillot avatar

Watchers

 avatar  avatar Damon Haley avatar James Cloos avatar  avatar

gitmon's Issues

'Repo' object has no attribute 'remote'

Hi I have an error trying to run Gitmon on Ubuntu 11.10:
Failed checking updates for %repo_name%: 'Repo' object has no attribute 'remote'
python-git version is 0.1.6-1

Problem with libnotify under Fedora (Rawhide)

Running gitmon under Fedora with configured libnotify ends with:

GitMon Self Test. You should see a notification right now. Install Growl from http://growl.info if you don't.

(gitmon:20261): libnotify-WARNING *: you must call notify_init() before showing
*

libnotify:ERROR:notification.c:568:notify_notification_show: code should not be reached
Przerwane (core dumped)

After adding line:
pynotify.init("GitMon") after from notifiers import * notifications works without problems.

Removing remote branch locally fails

Traceback (most recent call last):
File "/usr/local/bin/gitmon", line 5, in
pkg_resources.run_script('GitMon==0.3.1', 'gitmon')
File "/Library/Python/2.6/site-packages/setuptools-0.6c12dev_r88124-py2.6.egg/pkg_resources.py", line 489, in run_script

File "/Library/Python/2.6/site-packages/setuptools-0.6c12dev_r88124-py2.6.egg/pkg_resources.py", line 1207, in run_script
# we assume here that our metadata may be nested inside a "basket"
File "/Library/Python/2.6/site-packages/GitMon-0.3.1-py2.6.egg/EGG-INFO/scripts/gitmon", line 129, in
main()
File "/Library/Python/2.6/site-packages/GitMon-0.3.1-py2.6.egg/EGG-INFO/scripts/gitmon", line 88, in main
scheduler = do_check(conf_file = conf_file)
File "/Library/Python/2.6/site-packages/GitMon-0.3.1-py2.6.egg/EGG-INFO/scripts/gitmon", line 114, in do_check
app.check()
File "/Library/Python/2.6/site-packages/GitMon-0.3.1-py2.6.egg/gitmon/gitmon.py", line 418, in check
for repo, st in self.get_repo_updates():
File "/Library/Python/2.6/site-packages/GitMon-0.3.1-py2.6.egg/gitmon/gitmon.py", line 425, in get_repo_updates
yield (repo, repo.check_status())
File "/Library/Python/2.6/site-packages/GitMon-0.3.1-py2.6.egg/gitmon/gitmon.py", line 89, in check_status
local_commits[rem.remote_head] = rem.commit
File "/Library/Python/2.6/site-packages/GitPython-0.3.1-py2.6.egg/git/refs/symbolic.py", line 165, in _get_commit
obj = self._get_object()
File "/Library/Python/2.6/site-packages/GitPython-0.3.1-py2.6.egg/git/refs/symbolic.py", line 158, in _get_object
return Object.new_from_sha(self.repo, hex_to_bin(self.dereference_recursive(self.repo, self.path)))
File "/Library/Python/2.6/site-packages/GitPython-0.3.1-py2.6.egg/git/refs/symbolic.py", line 112, in dereference_recursive
hexsha, ref_path = cls._get_ref_info(repo, ref_path)
File "/Library/Python/2.6/site-packages/GitPython-0.3.1-py2.6.egg/git/refs/symbolic.py", line 139, in _get_ref_info
raise ValueError("Reference at %r does not exist" % ref_path)
ValueError: Reference at 'refs/remotes/origin/master' does not exist

Notification about new branch or removed data keeps popping up

This happens when some branch is checked out and there's lot's of progress in other places. In that case even git fetch / git pull keep showing same data over and over.

Not sure how to fix. Perhaps jumping to master branch before git fetch or after fiding out what should be fetched, checkout that branch... Or just to store what was retrieved or last update date?

Enhancement for git-flow

As a gitflow user, it would be interesting to know about commits/tags/branches in develop/master branch at the same time.

It could be not just useful for git-flow, but in any scenario which you want to watch multiple branches for the same repo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.