tests/test-notify.out
author Martin Geisler <mg@daimi.au.dk>
Thu, 15 Jan 2009 00:14:36 +0100
changeset 7651 5b5036ef847a
parent 7547 4949729ee9ee
child 7658 44b3f7bbe2f3
permissions -rw-r--r--
i18n: encode output in user's local encoding This makes the translated output obey the HGENCODING environment variable or the preferred encoding as set by the LANG or LC_ALL environment variables. Python 2.4 has a lgettext method which is similar, except that it doesn't know about HGENCODING or the settings in .hgrc.

notify extension - hook extension to email notifications on commits/pushes

Subscriptions can be managed through hgrc. Default mode is to print
messages to stdout, for testing and configuring.

To use, configure notify extension and enable in hgrc like this:

   [extensions]
   hgext.notify =

   [hooks]
   # one email for each incoming changeset
   incoming.notify = python:hgext.notify.hook
   # batch emails when many changesets incoming at one time
   changegroup.notify = python:hgext.notify.hook

   [notify]
   # config items go in here

 config items:

 REQUIRED:
   config = /path/to/file # file containing subscriptions

 OPTIONAL:
   test = True            # print messages to stdout for testing
   strip = 3              # number of slashes to strip for url paths
   domain = example.com   # domain to use if committer missing domain
   style = ...            # style file to use when formatting email
   template = ...         # template to use when formatting email
   incoming = ...         # template to use when run as incoming hook
   changegroup = ...      # template when run as changegroup hook
   maxdiff = 300          # max lines of diffs to include (0=none, -1=all)
   maxsubject = 67        # truncate subject line longer than this
   diffstat = True        # add a diffstat before the diff content
   sources = serve        # notify if source of incoming changes in this list
                          # (serve == ssh or http, push, pull, bundle)
   [email]
   from = user@host.com   # email address to send as if none given
   [web]
   baseurl = http://hgserver/... # root of hg web site for browsing commits

 notify config file has same format as regular hgrc. it has two
 sections so you can express subscriptions in whatever way is handier
 for you.

   [usersubs]
   # key is subscriber email, value is ","-separated list of glob patterns
   user@host = pattern

   [reposubs]
   # key is glob pattern, value is ","-separated list of subscriber emails
   pattern = user@host

 glob patterns are matched against path to repo root.

 if you like, you can put notify config file in repo that users can
 push changes to, they can manage their own subscriptions.

no commands defined
% commit
adding a
% clone
updating working directory
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% commit
% pull (minimal config)
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Date:
Subject: changeset in test-notify/b: b
From: test
X-Hg-Notification: changeset 0647d048b600
Message-Id:
To: baz, foo@bar

changeset 0647d048b600 in test-notify/b
details: test-notify/b?cmd=changeset;node=0647d048b600
description: b

diffs (6 lines):

diff -r cb9a9f314b8b -r 0647d048b600 a
--- a/a	Thu Jan 01 00:00:00 1970 +0000
+++ b/a	Thu Jan 01 00:00:01 1970 +0000
@@ -1,1 +1,2 @@
 a
+a
(run 'hg update' to get a working copy)
% fail for config file is missing
rolling back last transaction
pull failed
% pull
rolling back last transaction
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Date:
Subject: b
From: test@test.com
X-Hg-Notification: changeset 0647d048b600
Message-Id:
To: baz@test.com, foo@bar

changeset 0647d048b600
description:
	b
diffs (6 lines):

diff -r cb9a9f314b8b -r 0647d048b600 a
--- a/a	Thu Jan 01 00:00:00 1970 +0000
+++ b/a	Thu Jan 01 00:00:01 1970 +0000
@@ -1,1 +1,2 @@
 a
+a
(run 'hg update' to get a working copy)
% pull
rolling back last transaction
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Date:
Subject: b
From: test@test.com
X-Hg-Notification: changeset 0647d048b600
Message-Id:
To: baz@test.com, foo@bar

changeset 0647d048b600
description:
	b
diffstat:

 a |  1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diffs (6 lines):

diff -r cb9a9f314b8b -r 0647d048b600 a
--- a/a	Thu Jan 01 00:00:00 1970 +0000
+++ b/a	Thu Jan 01 00:00:01 1970 +0000
@@ -1,1 +1,2 @@
 a
+a
(run 'hg update' to get a working copy)