OnWorks favicon

git-notifier - Online in the Cloud

Run git-notifier in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command git-notifier that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



git-notifier - script to be used with git as a post-receive hook


git-notifier [options]


git-notifier is a script to be used with git as a post-receive hook. Once installed, it
emails out a summary of all changes each time a user pushes an update to the repository.
Different from other similar scripts, git-notifier sends exactly one email per change,
each of which includes a complete diff of all modifications as well as the set of branches
from which the new revision can be reached. The scripts ensure that that each change is
mailed out only exactly once by keeping a state file of already reported revisions.

In addition, git-notifier also mails updates when branches or annotated tags are created
or removed; and it furthermore mails a revision summary if a head moves to now include
commits already reported previously (e.g., on fast-forwards).

If a commit message contains [nodiff], the generated mail will not include a diff. If a
commit message contains [nomail], no mail will be send for that change.

git-notifier supports the options below. Alternatively to giving them on the command line,
all of them can alse be set via git config hooks.<option>. For example, to set a recipient
address, do git config hooks.mailinglist [email protected].

For full documentation, see the homepage at: http://www.icir.org/robin/git-notifier/.


The basic installation is simple: just run the script from hooks/post-receive, as in:



By default, the script will send its mails to the user running the git-notifier (i.e., the
one doing the update). As that's usually not the desired recipient, an alternative email
address can be specified via command line or git options, see the mailinglist option


--allchanges <branches>
Lists <branches> for which all changes made to them should be mailed out as
straight diffs to their previous state, independent of whether the corresponding
commit has already been reported in the past. For merge commits, the mails include
the full diff (i.e., git's diff -m). This might for example make sense for master
if one wants to closely track any modification applied.

<branches> is a list of comma-separated names of heads to treat this way.

--branches <branches>
Lists <branches> to include/exclude in reporting. By default, all branches are
included. If this option is specified, only branches listed are included.
Alternatively, one can prefix a branch with - to exclude it: then all but the
excluded ones are reported.

<branches> is a list of comma-separated names of heads to treat this way.

PATH to alternative configuration file.

Run the script in debug mode, which means that it will (1) log more verbosely and
to stderr, and (2) run git-notifier with the --debug and --noupdate options.

--diff [rev1...] rev2
Mails out diffs between all revisions on the first parent's way from rev1 to rev2.
This option produces output similar to that of a head moving forward which is
listed with --allchanges. If rev1 is skipped, rev2~1 is assumed.

This option is primarily for debugging and retropective (re-)generation of this
outut, and does not change the current notifier state in any way. The main
difference to --manual is that it considers only revision on the first parent's
path, and mails out actual diffs between these.

Specifies a prefix for the mails' subject line. If the prefix contain an %r, that
will be replace with the repositories name. Default is [git/%r]. Note that the name
of this option is compatible with some of other git notification scripts.

--hostname <name>
Defines the hostname to use when building the repository path shown in the
notification mails. Default is the canonical name of the system the script is
running on.

If given, git-notifier will not report any commits that are already known by any
configured remote repository.

Specifies a base DIRECTORY for the git repository. If not given, the current
directory is the default.

-h, --help
show help message and exit

--link <url>
Specifies a <url> that will be included into notification mails for locating a
changeset online. The <url> can contain a %s placeholder that will be replaced with
the corresponding git revision number. The <url> can also contain an %r placeholder
that will be replaced with the name of the repository.

--log <file>
Write logging information into the given <file>. Default is git-notifier.log inside
the repository.

--mailcmd <command>
Specifies the command to use for sending mail. Default is /usr/sbin/sendmail.

--mailinglist <address>
Specifies the recipient for all generated mails. Default is mailing to the system
account that is running the script.

--mailserver <host>
SMTP server to use for outgoing mails. Default is None, in which case mail gets
sent through the local sendmail (or whatever --mailcmd defines alternatively).

--mailsubjectlen <max>
Limits subjects of generated mails to <max> characters. Default os no limit.

--manual [rev1..] rev2
Mails out notifications for all revisions on the way from rev1 to rev2. If rev1 is
skipped, rev2~1 is assumed.

This option is primarily for debugging and retropective (re-)generation of this
output, and does not change the current notifier state in any way.

--maxage <days>
Limits the age of commits to report. No commit older than this many days will
trigger a commit notification. Default is 30 days; zero disables the age check.

--maxdiffsize <size>
Limits the <size>of mails by giving a maximum number of kilobytes that a diff may
have. If the diff for a change is larger than this value, a notification mail is
still send out but the diff is excluded (and replaced with a note saying so).
Default is 50K.

--mergediffs <branches>
Lists <branches> for which merges should include the full diff, including all
changes that are already part of branch commits.

<branches> is a list of command-separated names of heads to treat this way.

Does not update the internal state file, meaning that any updates will be reported
again next time the script is run.

--replyto <email>
Adds a Reply-To: <email> header to outgoing mails.

full URI for the repository

--sender <address>
Defines the sender <address> for all generated mails. Default is the user doing the
update (if gitolite is used, that's the gitolite acccount doing the push, not the
system account running git-notifier.)

Does not send out any mail notifications but still updates the index. In other
words, all recent changes will be marked as "seen", without reporting them.

--users <file>
This is only for installations using gitolite <XXX>, for which the default sender
address for all mails would normally be the gitolite user account name of the
person doing the push. With this option, one can alternatively specify a file that
maps such account names to alternative addresses, which will then be used as the
sender for mails.

Note that even if --users is not given, git-notifier will still look for such a
file in ../conf/sender.cfg, relative to the top-level repository directory. In
other words, you can check a file sender.cfg containing the mappings into
gitolite's config/ directory and it should Just Work.

Shows program's version number and exit

Use git-notifier online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    USBLoaderGX is a GUI for
    Waninkoko's USB Loader, based on
    libwiigui. It allows listing and
    launching Wii games, Gamecube games and
    homebrew on Wii and WiiU...
    Download USBLoaderGX
  • 2
    Firebird RDBMS offers ANSI SQL features
    & runs on Linux, Windows &
    several Unix platforms. Features
    excellent concurrency & performance
    & power...
    Download Firebird
  • 3
    KompoZer is a wysiwyg HTML editor using
    the Mozilla Composer codebase. As
    Nvu's development has been stopped
    in 2005, KompoZer fixes many bugs and
    adds a f...
    Download KompoZer
  • 4
    Free Manga Downloader
    Free Manga Downloader
    The Free Manga Downloader (FMD) is an
    open source application written in
    Object-Pascal for managing and
    downloading manga from various websites.
    This is a mirr...
    Download Free Manga Downloader
  • 5
    UNetbootin allows you to create bootable
    Live USB drives for Ubuntu, Fedora, and
    other Linux distributions without
    burning a CD. It runs on Windows, Linux,
    and ...
    Download UNetbootin
  • 6
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM is an easy to use
    ERP and CRM open source software package
    (run with a web php server or as
    standalone software) for businesses,
    Download Dolibarr ERP - CRM
  • More »

Linux commands