--- a/tests/test-notify Sun Sep 26 13:43:21 2010 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-#!/bin/sh
-
-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
-hg init a
-echo a > a/a
-echo % commit
-hg --traceback --cwd a commit -Ama -d '0 0'
-
-echo % clone
-hg --traceback clone a b
-
-echo a >> a/a
-echo % 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
-echo '% pull (minimal config)'
-hg --traceback --cwd b pull ../a 2>&1 |
- python -c 'import sys,re; print re.sub("([n:])\\n[\\t ]", "\\1 ", sys.stdin.read()),' |
- sed -e 's/\(Message-Id:\).*/\1/' \
- -e 's/changeset \([0-9a-f]* *\)in .*test-notif/changeset \1in test-notif/' \
- -e 's/^details: .*test-notify/details: test-notify/' \
- -e 's/^Date:.*/Date:/'
-
-cat <<EOF >> $HGRCPATH
-[notify]
-config = $HGTMP/.notify.conf
-domain = test.com
-strip = 3
-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
-
-echo % fail for config file is missing
-hg --cwd b rollback
-hg --cwd b pull ../a 2>&1 | grep 'error.*\.notify\.conf' > /dev/null && echo pull failed
-
-touch "$HGTMP/.notify.conf"
-
-echo % pull
-hg --cwd b rollback
-hg --traceback --cwd b pull ../a 2>&1 | sed -e 's/\(Message-Id:\).*/\1/' \
- -e 's/changeset \([0-9a-f]*\) in .*/changeset \1/' \
- -e 's/^Date:.*/Date:/'
-
-cat << EOF >> $HGRCPATH
-[hooks]
-incoming.notify = python:hgext.notify.hook
-
-[notify]
-sources = pull
-diffstat = True
-EOF
-
-echo % pull
-hg --cwd b rollback
-hg --traceback --cwd b pull ../a 2>&1 | sed -e 's/\(Message-Id:\).*/\1/' \
- -e 's/changeset \([0-9a-f]*\) in .*/changeset \1/' \
- -e 's/^Date:.*/Date:/'
-
-echo % test merge
-cd a
-hg up -C 0
-echo a >> a
-hg ci -Am adda2 -d '2 0'
-hg merge
-hg ci -m merge -d '3 0'
-cd ..
-
-hg --traceback --cwd b pull ../a 2>&1 | sed -e 's/\(Message-Id:\).*/\1/' \
- -e 's/changeset \([0-9a-f]*\) in .*/changeset \1/' \
- -e 's/^Date:.*/Date:/'
-
--- a/tests/test-notify.out Sun Sep 26 13:43:21 2010 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-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
-
- [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
- 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)
- 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
-% commit
-adding a
-% clone
-updating to branch default
-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 to revision 0 (undo pull)
-pull failed
-% pull
-rolling back to revision 0 (undo pull)
-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:
-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 to revision 0 (undo pull)
-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:
-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)
-% test merge
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-created new head
-0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-(branch merge, don't forget to commit)
-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:
-Subject: adda2
-From: test@test.com
-X-Hg-Notification: changeset 0a184ce6067f
-Message-Id:
-To: baz@test.com, foo@bar
-
-changeset 0a184ce6067f
-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:
-Subject: merge
-From: test@test.com
-X-Hg-Notification: changeset 22c88b85aa27
-Message-Id:
-To: baz@test.com, foo@bar
-
-changeset 22c88b85aa27
-description:
- merge
-(run 'hg update' to get a working copy)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-notify.t Sun Sep 26 13:44:42 2010 -0500
@@ -0,0 +1,305 @@
+
+ $ 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
+
+ [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
+ 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)
+ 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 | \
+ > 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
+ Date: * (glob)
+ Subject: changeset in */b: b (glob)
+ From: test
+ X-Hg-Notification: changeset 0647d048b600
+ Message-Id: <*> (glob)
+ To: baz, foo@bar
+
+ changeset 0647d048b600 in */b (glob)
+ details: *?cmd=changeset;node=0647d048b600 (glob)
+ 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
+ > [notify]
+ > config = $HGTMP/.notify.conf
+ > domain = test.com
+ > strip = 3
+ > 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
+ rolling back to revision 0 (undo pull)
+ $ hg --cwd b pull ../a 2>&1 | grep 'error.*\.notify\.conf' > /dev/null && echo pull failed
+ pull failed
+ $ touch "$HGTMP/.notify.conf"
+
+pull
+
+ $ hg --cwd b rollback
+ rolling back to revision 0 (undo pull)
+ $ 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
+
+ changeset 0647d048b600 in */b (glob)
+ 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
+ rolling back to revision 0 (undo pull)
+ $ 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
+
+ changeset 0647d048b600 in */b (glob)
+ 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
+
+ changeset 0a184ce6067f in */b (glob)
+ 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
+ X-Hg-Notification: changeset 22c88b85aa27
+ Message-Id: <*> (glob)
+ To: baz@test.com, foo@bar
+
+ changeset 22c88b85aa27 in */b (glob)
+ description: merge
+ (run 'hg update' to get a working copy)