test-notify.t
871 lines
| 25.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-notify.t
Augie Fackler
|
r33684 | $ cat > $TESTTMP/filter.py <<EOF | ||
Gregory Szorc
|
r45143 | > import io | ||
Augie Fackler
|
r33971 | > import re | ||
> import sys | ||||
Gregory Szorc
|
r49799 | > sys.stdout = io.TextIOWrapper( | ||
> sys.stdout.buffer, | ||||
> sys.stdout.encoding, | ||||
> sys.stdout.errors, | ||||
> newline="\n", | ||||
> line_buffering=sys.stdout.line_buffering, | ||||
> ) | ||||
Augie Fackler
|
r33684 | > print(re.sub("\n[ \t]", " ", sys.stdin.read()), end="") | ||
> EOF | ||||
Matt Mackall
|
r12473 | |||
$ cat <<EOF >> $HGRCPATH | ||||
Joerg Sonnenberger
|
r45117 | > [experimental] | ||
> evolution = true | ||||
> | ||||
Matt Mackall
|
r12473 | > [extensions] | ||
> notify= | ||||
Joerg Sonnenberger
|
r45117 | > strip= | ||
> | ||||
> [phases] | ||||
> publish=False | ||||
Matt Mackall
|
r12473 | > | ||
> [hooks] | ||||
> incoming.notify = python:hgext.notify.hook | ||||
> | ||||
> [notify] | ||||
> sources = pull | ||||
> diffstat = False | ||||
Joerg Sonnenberger
|
r45117 | > reply-to-predecessor = True | ||
> messageidseed = notifyseed | ||||
Matt Mackall
|
r12473 | > | ||
> [usersubs] | ||||
> foo@bar = * | ||||
> | ||||
> [reposubs] | ||||
> * = baz | ||||
> EOF | ||||
$ hg help notify | ||||
Patrick Mezard
|
r14940 | notify extension - hooks for sending email push notifications | ||
Matt Mackall
|
r12473 | |||
David Champion
|
r16950 | This extension implements hooks to send email notifications when changesets | ||
are sent from or received by the local repository. | ||||
Matt Mackall
|
r12473 | |||
timeless
|
r27729 | First, enable the extension as explained in 'hg help extensions', and register | ||
David Champion
|
r16950 | the hook you want to run. "incoming" and "changegroup" hooks are run when | ||
changesets are received, while "outgoing" hooks are for changesets sent to | ||||
another repository: | ||||
Matt Mackall
|
r12473 | |||
[hooks] | ||||
# one email for each incoming changeset | ||||
incoming.notify = python:hgext.notify.hook | ||||
Patrick Mezard
|
r14940 | # one email for all incoming changesets | ||
Matt Mackall
|
r12473 | changegroup.notify = python:hgext.notify.hook | ||
Patrick Mezard
|
r14940 | |||
# one email for all outgoing changesets | ||||
Ingo Bressler
|
r14617 | outgoing.notify = python:hgext.notify.hook | ||
Matt Mackall
|
r12473 | |||
David Champion
|
r16950 | This registers the hooks. To enable notification, subscribers must be assigned | ||
to repositories. The "[usersubs]" section maps multiple repositories to a | ||||
given recipient. The "[reposubs]" section maps multiple recipients to a single | ||||
repository: | ||||
Matt Mackall
|
r12473 | |||
[usersubs] | ||||
Michal Sznajder
|
r17754 | # key is subscriber email, value is a comma-separated list of repo patterns | ||
Matt Mackall
|
r12473 | user@host = pattern | ||
[reposubs] | ||||
Michal Sznajder
|
r17754 | # key is repo pattern, value is a comma-separated list of subscriber emails | ||
Matt Mackall
|
r12473 | pattern = user@host | ||
Michal Sznajder
|
r17754 | A "pattern" is a "glob" matching the absolute path to a repository, optionally | ||
combined with a revset expression. A revset expression, if present, is | ||||
separated from the glob by a hash. Example: | ||||
[reposubs] | ||||
*/widgets#branch(release) = qa-team@example.com | ||||
This sends to "qa-team@example.com" whenever a changeset on the "release" | ||||
branch triggers a notification in any repository ending in "widgets". | ||||
David Champion
|
r16950 | |||
In order to place them under direct user management, "[usersubs]" and | ||||
"[reposubs]" sections may be placed in a separate "hgrc" file and incorporated | ||||
by reference: | ||||
Patrick Mezard
|
r14940 | |||
[notify] | ||||
config = /path/to/subscriptionsfile | ||||
David Champion
|
r16950 | Notifications will not be sent until the "notify.test" value is set to | ||
"False"; see below. | ||||
Patrick Mezard
|
r14940 | |||
Notifications content can be tweaked with the following configuration entries: | ||||
notify.test | ||||
If "True", print messages to stdout instead of sending them. Default: True. | ||||
notify.sources | ||||
David Champion
|
r16950 | Space-separated list of change sources. Notifications are activated only | ||
when a changeset's source is in this list. Sources may be: | ||||
"serve" changesets received via http or ssh | ||||
"pull" changesets received via "hg pull" | ||||
"unbundle" changesets received via "hg unbundle" | ||||
"push" changesets sent or received via "hg push" | ||||
"bundle" changesets sent via "hg unbundle" | ||||
Default: serve. | ||||
Patrick Mezard
|
r14940 | |||
notify.strip | ||||
Number of leading slashes to strip from url paths. By default, notifications | ||||
David Champion
|
r16950 | reference repositories with their absolute path. "notify.strip" lets you | ||
Patrick Mezard
|
r14940 | turn them into relative paths. For example, "notify.strip=3" will change | ||
"/long/path/repository" into "repository". Default: 0. | ||||
notify.domain | ||||
Joerg Sonnenberger
|
r43174 | Default email domain for sender or recipients with no explicit domain. It is | ||
also used for the domain part of the "Message-Id" when using | ||||
"notify.messageidseed". | ||||
notify.messageidseed | ||||
Create deterministic "Message-Id" headers for the mails based on the seed | ||||
and the revision identifier of the first commit in the changeset. | ||||
Matt Mackall
|
r12473 | |||
Patrick Mezard
|
r14940 | notify.style | ||
Style file to use when formatting emails. | ||||
notify.template | ||||
Template to use when formatting emails. | ||||
notify.incoming | ||||
David Champion
|
r16950 | Template to use when run as an incoming hook, overriding "notify.template". | ||
Patrick Mezard
|
r14940 | |||
notify.outgoing | ||||
David Champion
|
r16950 | Template to use when run as an outgoing hook, overriding "notify.template". | ||
Patrick Mezard
|
r14940 | |||
notify.changegroup | ||||
David Champion
|
r16950 | Template to use when running as a changegroup hook, overriding | ||
Patrick Mezard
|
r14940 | "notify.template". | ||
notify.maxdiff | ||||
Maximum number of diff lines to include in notification email. Set to 0 to | ||||
David Champion
|
r16950 | disable the diff, or -1 to include all of it. Default: 300. | ||
Patrick Mezard
|
r14940 | |||
Joerg Sonnenberger
|
r37795 | notify.maxdiffstat | ||
Maximum number of diffstat lines to include in notification email. Set to -1 | ||||
to include all of it. Default: -1. | ||||
Patrick Mezard
|
r14940 | notify.maxsubject | ||
David Champion
|
r16950 | Maximum number of characters in email's subject line. Default: 67. | ||
Patrick Mezard
|
r14940 | |||
notify.diffstat | ||||
Set to True to include a diffstat before diff content. Default: True. | ||||
Joerg Sonnenberger
|
r38048 | notify.showfunc | ||
If set, override "diff.showfunc" for the diff content. Default: None. | ||||
Patrick Mezard
|
r14940 | notify.merge | ||
If True, send notifications for merge changesets. Default: True. | ||||
Mads Kiilerich
|
r15561 | notify.mbox | ||
If set, append mails to this mbox file instead of sending. Default: None. | ||||
Nikolaus Schueler
|
r15654 | notify.fromauthor | ||
David Champion
|
r16950 | If set, use the committer of the first changeset in a changegroup for the | ||
"From" field of the notification mail. If not set, take the user from the | ||||
pushing repo. Default: False. | ||||
Nikolaus Schueler
|
r15654 | |||
Joerg Sonnenberger
|
r45117 | notify.reply-to-predecessor (EXPERIMENTAL) | ||
If set and the changeset has a predecessor in the repository, try to thread | ||||
the notification mail with the predecessor. This adds the "In-Reply-To" | ||||
header to the notification mail with a reference to the predecessor with the | ||||
smallest revision number. Mail threads can still be torn, especially when | ||||
changesets are folded. | ||||
This option must be used in combination with "notify.messageidseed". | ||||
Patrick Mezard
|
r14940 | If set, the following entries will also be used to customize the | ||
notifications: | ||||
email.from | ||||
David Champion
|
r16950 | Email "From" address to use if none can be found in the generated email | ||
content. | ||||
Patrick Mezard
|
r14940 | |||
web.baseurl | ||||
David Champion
|
r16950 | Root repository URL to combine with repository paths when making references. | ||
See also "notify.strip". | ||||
Matt Mackall
|
r12473 | |||
no commands defined | ||||
$ hg init a | ||||
$ echo a > a/a | ||||
Joerg Sonnenberger
|
r37795 | $ echo b > a/b | ||
Matt Mackall
|
r12473 | |||
commit | ||||
$ hg --cwd a commit -Ama -d '0 0' | ||||
adding a | ||||
Joerg Sonnenberger
|
r37795 | adding b | ||
Matt Mackall
|
r12473 | |||
clone | ||||
$ hg --traceback clone a b | ||||
updating to branch default | ||||
Joerg Sonnenberger
|
r37795 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Matt Mackall
|
r12473 | $ echo a >> a/a | ||
Joerg Sonnenberger
|
r37795 | $ echo b >> a/b | ||
Matt Mackall
|
r12473 | |||
commit | ||||
$ hg --traceback --cwd a commit -Amb -d '1 0' | ||||
on Mac OS X 10.5 the tmp path is very long so would get stripped in the subject line | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> [notify] | ||||
> maxsubject = 200 | ||||
> EOF | ||||
the python call below wraps continuation lines, which appear on Mac OS X 10.5 because | ||||
of the very long subject line | ||||
pull (minimal config) | ||||
Denis Laxalde
|
r43642 | $ hg --traceback --cwd b --config notify.domain=example.com --config notify.messageidseed=example pull ../a | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||||
> "$PYTHON" $TESTTMP/filter.py | ||||
Matt Mackall
|
r12473 | pulling from ../a | ||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
Joerg Sonnenberger
|
r37795 | added 1 changesets with 2 changes to 2 files | ||
Joerg Sonnenberger
|
r45117 | new changesets 00a13f371396 (1 drafts) | ||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Matt Mackall
|
r12473 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
Date: * (glob) | ||||
Mads Kiilerich
|
r12640 | Subject: changeset in $TESTTMP/b: b | ||
Joerg Sonnenberger
|
r43174 | From: test@example.com | ||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset 00a13f371396 | ||
Denis Laxalde
|
r43642 | Message-Id: <hg.ba3098a36bd4c297288d16788623a841f81f618ea961a0f0fd65de7eb1191b66@example.com> | ||
Joerg Sonnenberger
|
r43174 | To: baz@example.com, foo@bar | ||
Matt Mackall
|
r12473 | |||
Joerg Sonnenberger
|
r37795 | changeset 00a13f371396 in $TESTTMP/b | ||
details: $TESTTMP/b?cmd=changeset;node=00a13f371396 | ||||
Matt Mackall
|
r12473 | description: b | ||
Joerg Sonnenberger
|
r37795 | diffs (12 lines): | ||
Matt Mackall
|
r12473 | |||
Joerg Sonnenberger
|
r37795 | diff -r 0cd96de13884 -r 00a13f371396 a | ||
Matt Mackall
|
r12473 | --- a/a Thu Jan 01 00:00:00 1970 +0000 | ||
+++ b/a Thu Jan 01 00:00:01 1970 +0000 | ||||
Mads Kiilerich
|
r12646 | @@ -1,1 +1,2 @@ a | ||
Matt Mackall
|
r12473 | +a | ||
Joerg Sonnenberger
|
r37795 | diff -r 0cd96de13884 -r 00a13f371396 b | ||
--- a/b Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/b Thu Jan 01 00:00:01 1970 +0000 | ||||
@@ -1,1 +1,2 @@ b | ||||
+b | ||||
Matt Mackall
|
r12473 | (run 'hg update' to get a working copy) | ||
Augie Fackler
|
r33684 | |||
Matt Mackall
|
r12473 | $ cat <<EOF >> $HGRCPATH | ||
> [notify] | ||||
Mads Kiilerich
|
r12642 | > config = `pwd`/.notify.conf | ||
Matt Mackall
|
r12473 | > domain = test.com | ||
Mads Kiilerich
|
r12644 | > strip = 42 | ||
Matt Mackall
|
r12473 | > template = Subject: {desc|firstline|strip}\nFrom: {author}\nX-Test: foo\n\nchangeset {node|short} in {webroot}\ndescription:\n\t{desc|tabindent|strip} | ||
> | ||||
> [web] | ||||
> baseurl = http://test/ | ||||
> EOF | ||||
fail for config file is missing | ||||
$ hg --cwd b rollback | ||||
Gilles Moris
|
r13446 | repository tip rolled back to revision 0 (undo pull) | ||
Matt Mackall
|
r12473 | $ hg --cwd b pull ../a 2>&1 | grep 'error.*\.notify\.conf' > /dev/null && echo pull failed | ||
pull failed | ||||
Mads Kiilerich
|
r12642 | $ touch ".notify.conf" | ||
Matt Mackall
|
r12473 | |||
pull | ||||
$ hg --cwd b rollback | ||||
Gilles Moris
|
r13446 | repository tip rolled back to revision 0 (undo pull) | ||
Denis Laxalde
|
r43642 | $ hg --traceback --cwd b pull ../a | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||||
> "$PYTHON" $TESTTMP/filter.py | ||||
Matt Mackall
|
r12473 | pulling from ../a | ||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
Joerg Sonnenberger
|
r37795 | added 1 changesets with 2 changes to 2 files | ||
Joerg Sonnenberger
|
r45117 | new changesets 00a13f371396 (1 drafts) | ||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Matt Mackall
|
r12473 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
X-Test: foo | ||||
Date: * (glob) | ||||
Subject: b | ||||
From: test@test.com | ||||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset 00a13f371396 | ||
Matt Mackall
|
r12473 | Message-Id: <*> (glob) | ||
To: baz@test.com, foo@bar | ||||
Joerg Sonnenberger
|
r37795 | changeset 00a13f371396 in b | ||
Matt Mackall
|
r12473 | description: b | ||
Joerg Sonnenberger
|
r37795 | diffs (12 lines): | ||
Matt Mackall
|
r12473 | |||
Joerg Sonnenberger
|
r37795 | diff -r 0cd96de13884 -r 00a13f371396 a | ||
Matt Mackall
|
r12473 | --- a/a Thu Jan 01 00:00:00 1970 +0000 | ||
+++ b/a Thu Jan 01 00:00:01 1970 +0000 | ||||
Augie Fackler
|
r33684 | @@ -1,1 +1,2 @@ a | ||
Matt Mackall
|
r12473 | +a | ||
Joerg Sonnenberger
|
r37795 | diff -r 0cd96de13884 -r 00a13f371396 b | ||
--- a/b Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/b Thu Jan 01 00:00:01 1970 +0000 | ||||
@@ -1,1 +1,2 @@ b | ||||
+b | ||||
Matt Mackall
|
r12473 | (run 'hg update' to get a working copy) | ||
$ cat << EOF >> $HGRCPATH | ||||
> [hooks] | ||||
> incoming.notify = python:hgext.notify.hook | ||||
> | ||||
> [notify] | ||||
> sources = pull | ||||
> diffstat = True | ||||
> EOF | ||||
pull | ||||
$ hg --cwd b rollback | ||||
Gilles Moris
|
r13446 | repository tip rolled back to revision 0 (undo pull) | ||
Denis Laxalde
|
r43642 | $ hg --traceback --config notify.maxdiffstat=1 --cwd b pull ../a | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||||
> "$PYTHON" $TESTTMP/filter.py | ||||
Matt Mackall
|
r12473 | pulling from ../a | ||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
Joerg Sonnenberger
|
r37795 | added 1 changesets with 2 changes to 2 files | ||
Joerg Sonnenberger
|
r45117 | new changesets 00a13f371396 (1 drafts) | ||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Matt Mackall
|
r12473 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
X-Test: foo | ||||
Date: * (glob) | ||||
Subject: b | ||||
From: test@test.com | ||||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset 00a13f371396 | ||
Matt Mackall
|
r12473 | Message-Id: <*> (glob) | ||
To: baz@test.com, foo@bar | ||||
Joerg Sonnenberger
|
r37795 | changeset 00a13f371396 in b | ||
Matt Mackall
|
r12473 | description: b | ||
Joerg Sonnenberger
|
r37795 | diffstat (truncated from 2 to 1 lines): | ||
a | 1 + 2 files changed, 2 insertions(+), 0 deletions(-) | ||||
Matt Mackall
|
r12473 | |||
Joerg Sonnenberger
|
r37795 | diffs (12 lines): | ||
Matt Mackall
|
r12473 | |||
Joerg Sonnenberger
|
r37795 | diff -r 0cd96de13884 -r 00a13f371396 a | ||
Matt Mackall
|
r12473 | --- a/a Thu Jan 01 00:00:00 1970 +0000 | ||
+++ b/a Thu Jan 01 00:00:01 1970 +0000 | ||||
Augie Fackler
|
r33684 | @@ -1,1 +1,2 @@ a | ||
Matt Mackall
|
r12473 | +a | ||
Joerg Sonnenberger
|
r37795 | diff -r 0cd96de13884 -r 00a13f371396 b | ||
--- a/b Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/b Thu Jan 01 00:00:01 1970 +0000 | ||||
@@ -1,1 +1,2 @@ b | ||||
+b | ||||
Matt Mackall
|
r12473 | (run 'hg update' to get a working copy) | ||
test merge | ||||
$ cd a | ||||
$ hg up -C 0 | ||||
Joerg Sonnenberger
|
r37795 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Matt Mackall
|
r12473 | $ echo a >> a | ||
$ hg ci -Am adda2 -d '2 0' | ||||
created new head | ||||
$ hg merge | ||||
Joerg Sonnenberger
|
r37795 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Matt Mackall
|
r12473 | (branch merge, don't forget to commit) | ||
$ hg ci -m merge -d '3 0' | ||||
$ cd .. | ||||
Denis Laxalde
|
r43642 | $ hg --traceback --cwd b pull ../a | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||||
> "$PYTHON" $TESTTMP/filter.py | ||||
Matt Mackall
|
r12473 | pulling from ../a | ||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 2 changesets with 0 changes to 0 files | ||||
Joerg Sonnenberger
|
r45117 | new changesets 3332653e1f3c:fccf66cd0c35 (2 drafts) | ||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Matt Mackall
|
r12473 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
X-Test: foo | ||||
Date: * (glob) | ||||
Subject: adda2 | ||||
From: test@test.com | ||||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset 3332653e1f3c | ||
Matt Mackall
|
r12473 | Message-Id: <*> (glob) | ||
To: baz@test.com, foo@bar | ||||
Joerg Sonnenberger
|
r37795 | changeset 3332653e1f3c in b | ||
Matt Mackall
|
r12473 | description: adda2 | ||
diffstat: | ||||
Augie Fackler
|
r33684 | a | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) | ||
Matt Mackall
|
r12473 | |||
diffs (6 lines): | ||||
Joerg Sonnenberger
|
r37795 | diff -r 0cd96de13884 -r 3332653e1f3c a | ||
Matt Mackall
|
r12473 | --- a/a Thu Jan 01 00:00:00 1970 +0000 | ||
+++ b/a Thu Jan 01 00:00:02 1970 +0000 | ||||
Augie Fackler
|
r33684 | @@ -1,1 +1,2 @@ a | ||
Matt Mackall
|
r12473 | +a | ||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Matt Mackall
|
r12473 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
X-Test: foo | ||||
Date: * (glob) | ||||
Subject: merge | ||||
From: test@test.com | ||||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset fccf66cd0c35 | ||
Matt Mackall
|
r12473 | Message-Id: <*> (glob) | ||
To: baz@test.com, foo@bar | ||||
Joerg Sonnenberger
|
r37795 | changeset fccf66cd0c35 in b | ||
Matt Mackall
|
r12473 | description: merge | ||
Joerg Sonnenberger
|
r37795 | diffstat: | ||
b | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) | ||||
diffs (6 lines): | ||||
diff -r 3332653e1f3c -r fccf66cd0c35 b | ||||
--- a/b Thu Jan 01 00:00:02 1970 +0000 | ||||
+++ b/b Thu Jan 01 00:00:03 1970 +0000 | ||||
@@ -1,1 +1,2 @@ b | ||||
+b | ||||
Matt Mackall
|
r12473 | (run 'hg update' to get a working copy) | ||
Yuya Nishihara
|
r13225 | |||
Mads Kiilerich
|
r15561 | non-ascii content and truncation of multi-byte subject | ||
Yuya Nishihara
|
r13225 | |||
$ cat <<EOF >> $HGRCPATH | ||||
> [notify] | ||||
> maxsubject = 4 | ||||
> EOF | ||||
$ echo a >> a/a | ||||
$ hg --cwd a --encoding utf-8 commit -A -d '0 0' \ | ||||
Denis Laxalde
|
r43639 | > -m `"$PYTHON" -c 'import sys; getattr(sys.stdout, "buffer", sys.stdout).write(b"\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4")'` | ||
Yuya Nishihara
|
r13225 | $ hg --traceback --cwd b --encoding utf-8 pull ../a | \ | ||
Denis Laxalde
|
r43642 | > "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||
Matt Harbison
|
r39743 | > "$PYTHON" $TESTTMP/filter.py | ||
Yuya Nishihara
|
r13225 | pulling from ../a | ||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
Joerg Sonnenberger
|
r45117 | new changesets 0f25f9c22b4c (1 drafts) | ||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Yuya Nishihara
|
r13225 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 8bit | ||||
X-Test: foo | ||||
Date: * (glob) | ||||
Matt Harbison
|
r50772 | Subject: =?utf-8?b?w6AuLi4=?= | ||
Yuya Nishihara
|
r13225 | From: test@test.com | ||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset 0f25f9c22b4c | ||
Yuya Nishihara
|
r13225 | Message-Id: <*> (glob) | ||
To: baz@test.com, foo@bar | ||||
Joerg Sonnenberger
|
r37795 | changeset 0f25f9c22b4c in b | ||
Yuya Nishihara
|
r13225 | description: \xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4 (esc) | ||
diffstat: | ||||
Augie Fackler
|
r33684 | a | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) | ||
Yuya Nishihara
|
r13225 | |||
diffs (7 lines): | ||||
Joerg Sonnenberger
|
r37795 | diff -r fccf66cd0c35 -r 0f25f9c22b4c a | ||
Yuya Nishihara
|
r13225 | --- a/a Thu Jan 01 00:00:03 1970 +0000 | ||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
Augie Fackler
|
r33684 | @@ -1,2 +1,3 @@ a a | ||
Yuya Nishihara
|
r13225 | +a | ||
(run 'hg update' to get a working copy) | ||||
Mads Kiilerich
|
r15561 | |||
long lines | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> [notify] | ||||
> maxsubject = 67 | ||||
> test = False | ||||
> mbox = mbox | ||||
> EOF | ||||
Pulkit Goyal
|
r41667 | $ "$PYTHON" -c 'open("a/a", "ab").write(b"no" * 500 + b"\xd1\x84" + b"\n")' | ||
Mads Kiilerich
|
r15561 | $ hg --cwd a commit -A -m "long line" | ||
$ hg --traceback --cwd b pull ../a | ||||
pulling from ../a | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
Joerg Sonnenberger
|
r45117 | new changesets a846b5f6ebb7 (1 drafts) | ||
Mads Kiilerich
|
r15561 | notify: sending 2 subscribers 1 changes | ||
(run 'hg update' to get a working copy) | ||||
Denis Laxalde
|
r43642 | $ cat b/mbox | "$PYTHON" $TESTDIR/unwrap-message-id.py | "$PYTHON" $TESTTMP/filter.py | ||
Mads Kiilerich
|
r15561 | From test@test.com ... ... .. ..:..:.. .... (re) | ||
MIME-Version: 1.0 | ||||
Igor Ippolitov
|
r34311 | Content-Type: text/plain; charset="*" (glob) | ||
Mads Kiilerich
|
r15562 | Content-Transfer-Encoding: quoted-printable | ||
Mads Kiilerich
|
r15561 | X-Test: foo | ||
Date: * (glob) | ||||
Subject: long line | ||||
From: test@test.com | ||||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset a846b5f6ebb7 | ||
Joerg Sonnenberger
|
r45117 | Message-Id: <hg.e7dc7658565793ff33c797e72b7d1f3799347b042af3c40df6d17c8d5c3e560a@test.com> | ||
Mads Kiilerich
|
r15561 | To: baz@test.com, foo@bar | ||
Joerg Sonnenberger
|
r37795 | changeset a846b5f6ebb7 in b | ||
Mads Kiilerich
|
r15561 | description: long line | ||
diffstat: | ||||
Augie Fackler
|
r33684 | a | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) | ||
Mads Kiilerich
|
r15561 | |||
diffs (8 lines): | ||||
Joerg Sonnenberger
|
r37795 | diff -r 0f25f9c22b4c -r a846b5f6ebb7 a | ||
Mads Kiilerich
|
r15561 | --- a/a Thu Jan 01 00:00:00 1970 +0000 | ||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
Augie Fackler
|
r33684 | @@ -1,3 +1,4 @@ a a a | ||
Mads Kiilerich
|
r15562 | +nonononononononononononononononononononononononononononononononononononono= | ||
nononononononononononononononononononononononononononononononononononononon= | ||||
ononononononononononononononononononononononononononononononononononononono= | ||||
nononononononononononononononononononononononononononononononononononononon= | ||||
ononononononononononononononononononononononononononononononononononononono= | ||||
nononononononononononononononononononononononononononononononononononononon= | ||||
ononononononononononononononononononononononononononononononononononononono= | ||||
nononononononononononononononononononononononononononononononononononononon= | ||||
ononononononononononononononononononononononononononononononononononononono= | ||||
nononononononononononononononononononononononononononononononononononononon= | ||||
ononononononononononononononononononononononononononononononononononononono= | ||||
nononononononononononononononononononononononononononononononononononononon= | ||||
ononononononononononononononononononononononononononononononononononononono= | ||||
Igor Ippolitov
|
r34311 | nonononononononononononono=D1=84 | ||
Mads Kiilerich
|
r15561 | |||
Michal Sznajder
|
r17754 | revset selection: send to address that matches branch and repo | ||
$ cat << EOF >> $HGRCPATH | ||||
> [hooks] | ||||
> incoming.notify = python:hgext.notify.hook | ||||
> | ||||
> [notify] | ||||
> sources = pull | ||||
> test = True | ||||
> diffstat = False | ||||
> maxdiff = 0 | ||||
> | ||||
> [reposubs] | ||||
> */a#branch(test) = will_no_be_send@example.com | ||||
> */b#branch(test) = notify@example.com | ||||
> EOF | ||||
$ hg --cwd a branch test | ||||
marked working directory as branch test | ||||
(branches are permanent and global, did you want a bookmark?) | ||||
$ echo a >> a/a | ||||
$ hg --cwd a ci -m test -d '1 0' | ||||
Joerg Sonnenberger
|
r45117 | $ echo a >> a/a | ||
$ hg --cwd a ci -m test -d '1 0' | ||||
Denis Laxalde
|
r43642 | $ hg --traceback --cwd b pull ../a | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||||
> "$PYTHON" $TESTTMP/filter.py | ||||
Michal Sznajder
|
r17754 | pulling from ../a | ||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
Joerg Sonnenberger
|
r45117 | added 2 changesets with 2 changes to 1 files | ||
new changesets f7e5aaed4080:485bf79b9464 (2 drafts) | ||||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Michal Sznajder
|
r17754 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
X-Test: foo | ||||
Date: * (glob) | ||||
Subject: test | ||||
From: test@test.com | ||||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset f7e5aaed4080 | ||
Joerg Sonnenberger
|
r45117 | Message-Id: <hg.12e9ae631e2529e9cfbe7a93be0dd8a401280700640f802a60f20d7be659251d@test.com> | ||
Michal Sznajder
|
r17754 | To: baz@test.com, foo@bar, notify@example.com | ||
Joerg Sonnenberger
|
r37795 | changeset f7e5aaed4080 in b | ||
Michal Sznajder
|
r17754 | description: test | ||
Joerg Sonnenberger
|
r45117 | MIME-Version: 1.0 | ||
Content-Type: text/plain; charset="us-ascii" | ||||
Content-Transfer-Encoding: 7bit | ||||
X-Test: foo | ||||
Date: * (glob) | ||||
Subject: test | ||||
From: test@test.com | ||||
X-Hg-Notification: changeset 485bf79b9464 | ||||
Message-Id: <hg.15281d60c27d9d5fb70435d33ebc24cb5aa580f2535988dcb9923c26e8bc5c47@test.com> | ||||
To: baz@test.com, foo@bar, notify@example.com | ||||
changeset 485bf79b9464 in b | ||||
description: test | ||||
Michal Sznajder
|
r17754 | (run 'hg update' to get a working copy) | ||
revset selection: don't send to address that waits for mails | ||||
from different branch | ||||
$ hg --cwd a update default | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo a >> a/a | ||||
$ hg --cwd a ci -m test -d '1 0' | ||||
Denis Laxalde
|
r43642 | $ hg --traceback --cwd b pull ../a | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||||
> "$PYTHON" $TESTTMP/filter.py | ||||
Michal Sznajder
|
r17754 | pulling from ../a | ||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 0 changes to 0 files (+1 heads) | ||||
Joerg Sonnenberger
|
r45117 | new changesets 645eb6690ecf (1 drafts) | ||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Michal Sznajder
|
r17754 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
X-Test: foo | ||||
Date: * (glob) | ||||
Subject: test | ||||
From: test@test.com | ||||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset 645eb6690ecf | ||
Joerg Sonnenberger
|
r45117 | Message-Id: <hg.ba26b2c63e7deb44e86c934aeea147edde12a11b6ac94bda103dcab5028dc928@test.com> | ||
Michal Sznajder
|
r17754 | To: baz@test.com, foo@bar | ||
Joerg Sonnenberger
|
r37795 | changeset 645eb6690ecf in b | ||
Michal Sznajder
|
r17754 | description: test | ||
(run 'hg heads' to see heads) | ||||
Yuya Nishihara
|
r28951 | default template: | ||
$ grep -v '^template =' $HGRCPATH > "$HGRCPATH.new" | ||||
$ mv "$HGRCPATH.new" $HGRCPATH | ||||
$ echo a >> a/a | ||||
$ hg --cwd a commit -m 'default template' | ||||
Denis Laxalde
|
r43642 | $ hg --cwd b pull ../a -q | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||||
> "$PYTHON" $TESTTMP/filter.py | ||||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Yuya Nishihara
|
r28951 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
Date: * (glob) | ||||
Subject: changeset in b: default template | ||||
From: test@test.com | ||||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset 5cd4346eed47 | ||
Joerg Sonnenberger
|
r45117 | Message-Id: <hg.8caa7941b24fc673d10910cb072e2d167362a3c5111cafefa47190d9b831f0a3@test.com> | ||
Yuya Nishihara
|
r28951 | To: baz@test.com, foo@bar | ||
Joerg Sonnenberger
|
r37795 | changeset 5cd4346eed47 in $TESTTMP/b | ||
details: http://test/b?cmd=changeset;node=5cd4346eed47 | ||||
Yuya Nishihara
|
r28951 | description: default template | ||
with style: | ||||
$ cat <<EOF > notifystyle.map | ||||
> changeset = "Subject: {desc|firstline|strip} | ||||
> From: {author} | ||||
> {""} | ||||
> changeset {node|short}" | ||||
> EOF | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> [notify] | ||||
> style = $TESTTMP/notifystyle.map | ||||
> EOF | ||||
$ echo a >> a/a | ||||
$ hg --cwd a commit -m 'with style' | ||||
Denis Laxalde
|
r43642 | $ hg --cwd b pull ../a -q | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||||
> "$PYTHON" $TESTTMP/filter.py | ||||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Yuya Nishihara
|
r28951 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
Date: * (glob) | ||||
Subject: with style | ||||
From: test@test.com | ||||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset ec8d9d852f56 | ||
Joerg Sonnenberger
|
r45117 | Message-Id: <hg.ccd5049818a6a277251189ce1d6d0cca10723d58214199e7178894adb99ed918@test.com> | ||
Yuya Nishihara
|
r28951 | To: baz@test.com, foo@bar | ||
Joerg Sonnenberger
|
r37795 | changeset ec8d9d852f56 | ||
Yuya Nishihara
|
r28951 | |||
with template (overrides style): | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> template = Subject: {node|short}: {desc|firstline|strip} | ||||
> From: {author} | ||||
> {""} | ||||
> {desc} | ||||
> EOF | ||||
$ echo a >> a/a | ||||
$ hg --cwd a commit -m 'with template' | ||||
Denis Laxalde
|
r43642 | $ hg --cwd b pull ../a -q | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | \ | ||||
> "$PYTHON" $TESTTMP/filter.py | ||||
Igor Ippolitov
|
r34311 | MIME-Version: 1.0 | ||
Yuya Nishihara
|
r28951 | Content-Type: text/plain; charset="us-ascii" | ||
Content-Transfer-Encoding: 7bit | ||||
Date: * (glob) | ||||
Joerg Sonnenberger
|
r37795 | Subject: 14721b538ae3: with template | ||
Yuya Nishihara
|
r28951 | From: test@test.com | ||
Joerg Sonnenberger
|
r37795 | X-Hg-Notification: changeset 14721b538ae3 | ||
Joerg Sonnenberger
|
r45117 | Message-Id: <hg.7edb9765307a5a24528f3964672e794e2d21f2479e96c099bf52e02abd17b3a2@test.com> | ||
Yuya Nishihara
|
r28951 | To: baz@test.com, foo@bar | ||
with template | ||||
Joerg Sonnenberger
|
r38048 | |||
showfunc diff | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> showfunc = True | ||||
> template = | ||||
> maxdiff = -1 | ||||
> EOF | ||||
$ cd a | ||||
$ cat > f1 << EOF | ||||
> int main() { | ||||
> int a = 0; | ||||
> int b = 1; | ||||
> int c = 2; | ||||
> int d = 3; | ||||
> return a + b + c + d; | ||||
> } | ||||
> EOF | ||||
$ hg commit -Am addfunction | ||||
adding f1 | ||||
Joerg Sonnenberger
|
r45117 | $ hg debugobsolete eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee b86bc16ff894f057d023b306936f290954857187 | ||
1 new obsolescence markers | ||||
Denis Laxalde
|
r43642 | $ hg --cwd ../b pull ../a | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | ||||
Joerg Sonnenberger
|
r38048 | pulling from ../a | ||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
Joerg Sonnenberger
|
r45117 | 1 new obsolescence markers | ||
new changesets b86bc16ff894 (1 drafts) | ||||
Joerg Sonnenberger
|
r38048 | MIME-Version: 1.0 | ||
Content-Type: text/plain; charset="us-ascii" | ||||
Content-Transfer-Encoding: 7bit | ||||
Date: * (glob) | ||||
Subject: addfunction | ||||
From: test@test.com | ||||
X-Hg-Notification: changeset b86bc16ff894 | ||||
Joerg Sonnenberger
|
r45117 | Message-Id: <hg.4c7cacfbbd6ba170656be0c8fc0d7599bd925c0d545b836816be9983e6d08448@test.com> | ||
Joerg Sonnenberger
|
r38048 | To: baz@test.com, foo@bar | ||
changeset b86bc16ff894 | ||||
diffs (11 lines): | ||||
diff -r 14721b538ae3 -r b86bc16ff894 f1 | ||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/f1 Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -0,0 +1,7 @@ | ||||
+int main() { | ||||
+ int a = 0; | ||||
+ int b = 1; | ||||
+ int c = 2; | ||||
+ int d = 3; | ||||
+ return a + b + c + d; | ||||
+} | ||||
(run 'hg update' to get a working copy) | ||||
$ cat > f1 << EOF | ||||
> int main() { | ||||
> int a = 0; | ||||
> int b = 1; | ||||
> int c = 2; | ||||
> int e = 3; | ||||
> return a + b + c + e; | ||||
> } | ||||
> EOF | ||||
$ hg commit -m changefunction | ||||
Joerg Sonnenberger
|
r45117 | $ hg debugobsolete 485bf79b9464197b2ed2debd0b16252ad64ed458 e81040e9838c704d8bf17658cb11758f24e40b6b | ||
1 new obsolescence markers | ||||
obsoleted 1 changesets | ||||
Denis Laxalde
|
r43642 | $ hg --cwd ../b --config notify.showfunc=True pull ../a | \ | ||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | ||||
Joerg Sonnenberger
|
r38048 | pulling from ../a | ||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
Joerg Sonnenberger
|
r45117 | 1 new obsolescence markers | ||
obsoleted 1 changesets | ||||
new changesets e81040e9838c (1 drafts) | ||||
Joerg Sonnenberger
|
r38048 | MIME-Version: 1.0 | ||
Content-Type: text/plain; charset="us-ascii" | ||||
Content-Transfer-Encoding: 7bit | ||||
Date: * (glob) | ||||
Subject: changefunction | ||||
From: test@test.com | ||||
X-Hg-Notification: changeset e81040e9838c | ||||
Joerg Sonnenberger
|
r45117 | Message-Id: <hg.99b80bf1c5d0bf8f8a7e60107c1aa1da367a5943b2a70a8b36517d701557edff@test.com> | ||
In-Reply-To: <hg.15281d60c27d9d5fb70435d33ebc24cb5aa580f2535988dcb9923c26e8bc5c47@test.com> | ||||
Joerg Sonnenberger
|
r38048 | To: baz@test.com, foo@bar | ||
changeset e81040e9838c | ||||
diffs (12 lines): | ||||
diff -r b86bc16ff894 -r e81040e9838c f1 | ||||
--- a/f1 Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/f1 Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -2,6 +2,6 @@ int main() { | ||||
int a = 0; | ||||
int b = 1; | ||||
int c = 2; | ||||
- int d = 3; | ||||
- return a + b + c + d; | ||||
+ int e = 3; | ||||
+ return a + b + c + e; | ||||
} | ||||
(run 'hg update' to get a working copy) | ||||
Joerg Sonnenberger
|
r45117 | |||
Retry the In-Reply-To, but make sure the oldest known change is older. | ||||
This can happen when folding commits that have been rebased by another user. | ||||
$ hg --cwd ../b strip tip | ||||
saved backup bundle to $TESTTMP/b/.hg/strip-backup/e81040e9838c-10aad4de-backup.hg | ||||
$ hg debugobsolete f7e5aaed408029cfe9890318245e87ef44739fdd e81040e9838c704d8bf17658cb11758f24e40b6b | ||||
1 new obsolescence markers | ||||
obsoleted 1 changesets | ||||
$ hg --cwd ../b --config notify.showfunc=True pull ../a | \ | ||||
> "$PYTHON" $TESTDIR/unwrap-message-id.py | ||||
pulling from ../a | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
2 new obsolescence markers | ||||
obsoleted 2 changesets | ||||
new changesets e81040e9838c (1 drafts) | ||||
MIME-Version: 1.0 | ||||
Content-Type: text/plain; charset="us-ascii" | ||||
Content-Transfer-Encoding: 7bit | ||||
Date: * (glob) | ||||
Subject: changefunction | ||||
From: test@test.com | ||||
X-Hg-Notification: changeset e81040e9838c | ||||
Message-Id: <hg.99b80bf1c5d0bf8f8a7e60107c1aa1da367a5943b2a70a8b36517d701557edff@test.com> | ||||
In-Reply-To: <hg.12e9ae631e2529e9cfbe7a93be0dd8a401280700640f802a60f20d7be659251d@test.com> | ||||
To: baz@test.com, foo@bar | ||||
changeset e81040e9838c | ||||
diffs (12 lines): | ||||
diff -r b86bc16ff894 -r e81040e9838c f1 | ||||
--- a/f1 Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/f1 Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -2,6 +2,6 @@ int main() { | ||||
int a = 0; | ||||
int b = 1; | ||||
int c = 2; | ||||
- int d = 3; | ||||
- return a + b + c + d; | ||||
+ int e = 3; | ||||
+ return a + b + c + e; | ||||
} | ||||
(run 'hg update' to get a working copy) | ||||