mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
c1774bb6c3
Implemented as two functions: diffstat, which yields lines of text, formatted as a usual diffstat output, and diffstatdata, which is called inside diffstat to do real performing and yield file names with appropriate data (numbers of added and removed lines).
165 lines
4.3 KiB
Plaintext
165 lines
4.3 KiB
Plaintext
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)
|