Mercurial > hg
view tests/test-notify.out @ 11109:a2bc2f2d77a9
subrepo: normalize path part of URLs so that pulling subrepos from webdir works
For a "all projects at root" repo layout eg:
/main
/sub
Where subrepos are used such that a clone of main has this layout:
./main/
./main/.hgsub
./main/sub/
And the .hgsub content is:
sub = ../sub
This allows a pull from a hgweb where main and sub are exposed
at the root (or same directory level)
The current code doesn't normalize the path component of a pull
url. this results in trying to pull from
http://server.com/hg/main/../sub
Current hgweb implementation doesn't reduce the path component
so this results in a 404 error though everything is setup logically.
This patch adresses this 404 error on the puller side
normalizing the URLs used for pulling sub repos. For this
example, the URL would be reduced to http://server.com/hg/sub
Fix + test
author | Edouard Gomez <ed.gomez@free.fr> |
---|---|
date | Sat, 01 May 2010 23:05:19 +0200 |
parents | 468876bc3885 |
children | 39e7f14a8286 |
line wrap: on
line source
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 1 (undo pull) pull failed % pull rolling back to revision 1 (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 1 (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)