##// END OF EJS Templates
subrepo: fix cloning of repos from urls without slash after host (issue2970)...
subrepo: fix cloning of repos from urls without slash after host (issue2970) This fixes a regression introduced with the new url handling in 1.9. This should perhaps be fixed in the url class instead, but that might be too invasive for a stable bugfix.

File last commit:

r14940:d78b9235 default
r15055:d629f1e8 1.9.2 stable
Show More
test-notify.t
356 lines | 9.6 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: unify test-notify
r12473
$ cat <<EOF >> $HGRCPATH
> [extensions]
> notify=
>
> [hooks]
> incoming.notify = python:hgext.notify.hook
>
> [notify]
> sources = pull
> diffstat = False
>
> [usersubs]
> foo@bar = *
>
> [reposubs]
> * = baz
> EOF
$ hg help notify
notify extension - hooks for sending email notifications at commit/push time
Subscriptions can be managed through a hgrc file. Default mode is to print
messages to stdout, for testing and configuring.
To use, configure the notify extension and enable it in hgrc like this:
[extensions]
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
Ingo Bressler
notify: send changesets on 'outgoing' hook, updated doc
r14617 # batch emails when many changesets outgoing at one time (client side)
outgoing.notify = python:hgext.notify.hook
Matt Mackall
tests: unify test-notify
r12473
[notify]
# config items go here
Required configuration items:
config = /path/to/file # file containing subscriptions
Optional configuration items:
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
Ingo Bressler
notify: send changesets on 'outgoing' hook, updated doc
r14617 outgoing = ... # template to use when run as outgoing hook
changegroup = ... # template to use when run as changegroup hook
Matt Mackall
tests: unify test-notify
r12473 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)
merge = False # send notification for merges (default True)
[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
The notify config file has same format as a regular hgrc file. 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 repository root.
If you like, you can put notify config file in repository that users can push
changes to, they can manage their own subscriptions.
no commands defined
$ hg init a
$ echo a > a/a
commit
$ hg --cwd a commit -Ama -d '0 0'
adding a
clone
$ hg --traceback clone a b
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo a >> a/a
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)
$ hg --traceback --cwd b pull ../a | \
Mads Kiilerich
test-notify: fix fix for line continuation in long mail header lines...
r12646 > python -c 'import sys,re; print re.sub("\n[\t ]", " ", sys.stdin.read()),'
Matt Mackall
tests: unify test-notify
r12473 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: * (glob)
Mads Kiilerich
tests: remove redundant globs...
r12640 Subject: changeset in $TESTTMP/b: b
Matt Mackall
tests: unify test-notify
r12473 From: test
X-Hg-Notification: changeset 0647d048b600
Message-Id: <*> (glob)
To: baz, foo@bar
Mads Kiilerich
tests: remove redundant globs...
r12640 changeset 0647d048b600 in $TESTTMP/b
details: $TESTTMP/b?cmd=changeset;node=0647d048b600
Matt Mackall
tests: unify test-notify
r12473 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
Mads Kiilerich
test-notify: fix fix for line continuation in long mail header lines...
r12646 @@ -1,1 +1,2 @@ a
Matt Mackall
tests: unify test-notify
r12473 +a
(run 'hg update' to get a working copy)
$ cat <<EOF >> $HGRCPATH
> [notify]
Mads Kiilerich
tests: remove the last traces of $HGTMP...
r12642 > config = `pwd`/.notify.conf
Matt Mackall
tests: unify test-notify
r12473 > domain = test.com
Mads Kiilerich
test-notify: stabilize output...
r12644 > strip = 42
Matt Mackall
tests: unify test-notify
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
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 0 (undo pull)
working directory now based on revision 0
Matt Mackall
tests: unify test-notify
r12473 $ hg --cwd b pull ../a 2>&1 | grep 'error.*\.notify\.conf' > /dev/null && echo pull failed
pull failed
Mads Kiilerich
tests: remove the last traces of $HGTMP...
r12642 $ touch ".notify.conf"
Matt Mackall
tests: unify test-notify
r12473
pull
$ hg --cwd b rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 0 (undo pull)
working directory now based on revision 0
Matt Mackall
tests: unify test-notify
r12473 $ hg --traceback --cwd b pull ../a | \
> python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),'
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
X-Test: foo
Date: * (glob)
Subject: b
From: test@test.com
X-Hg-Notification: changeset 0647d048b600
Message-Id: <*> (glob)
To: baz@test.com, foo@bar
Mads Kiilerich
test-notify: stabilize output...
r12644 changeset 0647d048b600 in b
Matt Mackall
tests: unify test-notify
r12473 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)
$ cat << EOF >> $HGRCPATH
> [hooks]
> incoming.notify = python:hgext.notify.hook
>
> [notify]
> sources = pull
> diffstat = True
> EOF
pull
$ hg --cwd b rollback
Gilles Moris
rollback: clarifies the message about the reverted state (issue2628)...
r13446 repository tip rolled back to revision 0 (undo pull)
working directory now based on revision 0
Matt Mackall
tests: unify test-notify
r12473 $ hg --traceback --cwd b pull ../a | \
> python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),'
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
X-Test: foo
Date: * (glob)
Subject: b
From: test@test.com
X-Hg-Notification: changeset 0647d048b600
Message-Id: <*> (glob)
To: baz@test.com, foo@bar
Mads Kiilerich
test-notify: stabilize output...
r12644 changeset 0647d048b600 in b
Matt Mackall
tests: unify test-notify
r12473 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)
test merge
$ cd a
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo a >> a
$ hg ci -Am adda2 -d '2 0'
created new head
$ hg merge
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m merge -d '3 0'
$ cd ..
$ hg --traceback --cwd b pull ../a | \
> python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),'
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 0 changes to 0 files
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Test: foo
Date: * (glob)
Subject: adda2
From: test@test.com
X-Hg-Notification: changeset 0a184ce6067f
Message-Id: <*> (glob)
To: baz@test.com, foo@bar
Mads Kiilerich
test-notify: stabilize output...
r12644 changeset 0a184ce6067f in b
Matt Mackall
tests: unify test-notify
r12473 description: adda2
diffstat:
a | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (6 lines):
diff -r cb9a9f314b8b -r 0a184ce6067f a
--- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:02 1970 +0000
@@ -1,1 +1,2 @@
a
+a
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Test: foo
Date: * (glob)
Subject: merge
From: test@test.com
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 X-Hg-Notification: changeset 6a0cf76b2701
Matt Mackall
tests: unify test-notify
r12473 Message-Id: <*> (glob)
To: baz@test.com, foo@bar
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 changeset 6a0cf76b2701 in b
Matt Mackall
tests: unify test-notify
r12473 description: merge
(run 'hg update' to get a working copy)
Yuya Nishihara
util: fix ellipsis() not to break multi-byte sequence (issue2564)...
r13225
truncate multi-byte subject
$ cat <<EOF >> $HGRCPATH
> [notify]
> maxsubject = 4
> EOF
$ echo a >> a/a
$ hg --cwd a --encoding utf-8 commit -A -d '0 0' \
> -m `python -c 'print "\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4"'`
$ hg --traceback --cwd b --encoding utf-8 pull ../a | \
> python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),'
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: 8bit
X-Test: foo
Date: * (glob)
Subject: \xc3\xa0... (esc)
From: test@test.com
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 X-Hg-Notification: changeset 7ea05ad269dc
Yuya Nishihara
util: fix ellipsis() not to break multi-byte sequence (issue2564)...
r13225 Message-Id: <*> (glob)
To: baz@test.com, foo@bar
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 changeset 7ea05ad269dc in b
Yuya Nishihara
util: fix ellipsis() not to break multi-byte sequence (issue2564)...
r13225 description: \xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4 (esc)
diffstat:
a | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diffs (7 lines):
Peter Arrenbrecht
localrepo: reuse parent manifest in commitctx if no files have changed...
r14162 diff -r 6a0cf76b2701 -r 7ea05ad269dc a
Yuya Nishihara
util: fix ellipsis() not to break multi-byte sequence (issue2564)...
r13225 --- a/a Thu Jan 01 00:00:03 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +1,3 @@
a
a
+a
(run 'hg update' to get a working copy)