test-serve: make the 'listening at *' lines optional
The daemonized serve process doesn't print these lines out (see 448d0c452140).
I was able to get it to with the following hack:
diff --git a/mercurial/win32.py b/mercurial/win32.py
--- a/mercurial/win32.py
+++ b/mercurial/win32.py
@@ -418,6 +418,11 @@
return str(ppid)
def spawndetached(args):
+
+ import subprocess
+ return subprocess.Popen(args, cwd=pycompat.getcwd(), env=encoding.environ,
+ creationflags=subprocess.CREATE_NEW_PROCESS_GROUP).pid
+
# No standard library function really spawns a fully detached
# process under win32 because they allocate pipes or other objects
# to handle standard streams communications. Passing these objects
However, MSYS translates --prefixes starting with '/' to 'C:/MinGW/msys/1.0',
which changes the output. The output isn't so important that I want to spend a
bunch of time on this, and risk breaking some subtle behavior of `hg serve -d`
with the more complicated code.
mock bugzilla driver for testing template output:
$ cat <<EOF > bzmock.py
> from __future__ import absolute_import
> from mercurial import extensions
>
> def extsetup(ui):
> bugzilla = extensions.find('bugzilla')
> class bzmock(bugzilla.bzaccess):
> def __init__(self, ui):
> super(bzmock, self).__init__(ui)
> self._logfile = ui.config('bugzilla', 'mocklog')
> def updatebug(self, bugid, newstate, text, committer):
> with open(self._logfile, 'a') as f:
> f.write('update bugid=%r, newstate=%r, committer=%r\n'
> % (bugid, newstate, committer))
> f.write('----\n' + text + '\n----\n')
> def notify(self, bugs, committer):
> with open(self._logfile, 'a') as f:
> f.write('notify bugs=%r, committer=%r\n'
> % (bugs, committer))
> bugzilla.bugzilla._versions['mock'] = bzmock
> EOF
set up mock repository:
$ hg init mockremote
$ cat <<EOF > mockremote/.hg/hgrc
> [extensions]
> bugzilla =
> bzmock = $TESTTMP/bzmock.py
>
> [bugzilla]
> version = mock
> mocklog = $TESTTMP/bzmock.log
>
> [hooks]
> incoming.bugzilla = python:hgext.bugzilla.hook
>
> [web]
> baseurl=http://example.org/hg
>
> %include $TESTTMP/bzstyle.hgrc
> EOF
$ hg clone -q mockremote mocklocal
push with default template:
$ echo '[bugzilla]' > bzstyle.hgrc
$ echo foo > mocklocal/foo
$ hg ci -R mocklocal -Aqm 'Fixes bug 123'
$ hg -R mocklocal push -q
$ cat bzmock.log && rm bzmock.log
update bugid=123, newstate={}, committer='test'
----
changeset 7875a8342c6f in repo $TESTTMP/mockremote refers to bug 123. (glob)
details:
Fixes bug 123
----
notify bugs={123: {}}, committer='test'
push with style:
$ cat <<EOF > bzstyle.map
> changeset = "{node|short} refers to bug {bug}."
> EOF
$ echo "style = $TESTTMP/bzstyle.map" >> bzstyle.hgrc
$ echo foo >> mocklocal/foo
$ hg ci -R mocklocal -qm 'Fixes bug 456'
$ hg -R mocklocal push -q
$ cat bzmock.log && rm bzmock.log
update bugid=456, newstate={}, committer='test'
----
2808b172464b refers to bug 456.
----
notify bugs={456: {}}, committer='test'
push with template (overrides style):
$ cat <<EOF >> bzstyle.hgrc
> template = Changeset {node|short} in {root|basename}.
> {hgweb}/rev/{node|short}\n
> {desc}
> EOF
$ echo foo >> mocklocal/foo
$ hg ci -R mocklocal -qm 'Fixes bug 789'
$ hg -R mocklocal push -q
$ cat bzmock.log && rm bzmock.log
update bugid=789, newstate={}, committer='test'
----
Changeset a770f3e409f2 in mockremote.
http://example.org/hg/rev/a770f3e409f2
Fixes bug 789
----
notify bugs={789: {}}, committer='test'