Mercurial > hg-stable
view tests/test-serve.t @ 47410:ebdef6283798
rhg: read [paths] for `--repository` value
hg parses `-R` and `--repository` CLI arguments "early" in order to know which
local repository to load config from. (Config can then affect whether or how to
fall back.)
The value of of those arguments can be not only a filesystem path, but also an
alias configured in the `[paths]` section. This part was missing in rhg and
this patch implements that.
The current patch still lacks functionality to read config of current repository
if we are not at root of repo. That will be fixed in upcoming patches.
A new crate `home` is added to get path of home directory.
Differential Revision: https://phab.mercurial-scm.org/D10296
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Sun, 11 Apr 2021 00:50:10 +0530 |
parents | ebee234d952a |
children | a8deb9dc39da |
line wrap: on
line source
#require serve $ hgserve() > { > hg serve -a localhost -d --pid-file=hg.pid -E errors.log -v $@ \ > | sed -e "s/:$HGPORT1\\([^0-9]\\)/:HGPORT1\1/g" \ > -e "s/:$HGPORT2\\([^0-9]\\)/:HGPORT2\1/g" \ > -e 's/http:\/\/[^/]*\//http:\/\/localhost\//' > if [ -f hg.pid ]; then > killdaemons.py hg.pid > fi > echo % errors > cat errors.log > } $ hg init test $ cd test $ echo '[web]' > .hg/hgrc $ echo 'accesslog = access.log' >> .hg/hgrc $ echo "port = $HGPORT1" >> .hg/hgrc Without -v $ hg serve -a localhost -p $HGPORT -d --pid-file=hg.pid -E errors.log $ cat hg.pid >> "$DAEMON_PIDS" $ if [ -f access.log ]; then > echo 'access log created - .hg/hgrc respected' > fi access log created - .hg/hgrc respected errors $ cat errors.log With -v $ hgserve listening at http://localhost/ (bound to *$LOCALIP*:HGPORT1) (glob) (?) % errors With -v and -p HGPORT2 $ hgserve -p "$HGPORT2" listening at http://localhost/ (bound to *$LOCALIP*:HGPORT2) (glob) (?) % errors With -v and -p daytime (should fail because low port) #if no-root no-windows $ KILLQUIETLY=Y $ hgserve -p daytime abort: cannot start server at 'localhost:13': Permission denied abort: child process failed to start % errors $ KILLQUIETLY=N #endif With --prefix foo $ hgserve --prefix foo listening at http://localhost/foo/ (bound to *$LOCALIP*:HGPORT1) (glob) (?) % errors With --prefix /foo $ hgserve --prefix /foo listening at http://localhost/foo/ (bound to *$LOCALIP*:HGPORT1) (glob) (?) % errors With --prefix foo/ $ hgserve --prefix foo/ listening at http://localhost/foo/ (bound to *$LOCALIP*:HGPORT1) (glob) (?) % errors With --prefix /foo/ $ hgserve --prefix /foo/ listening at http://localhost/foo/ (bound to *$LOCALIP*:HGPORT1) (glob) (?) % errors $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS With out of bounds accesses $ rm access.log $ hg serve -a localhost -p $HGPORT -d --prefix some/dir \ > --pid-file=hg.pid -E errors.log $ cat hg.pid >> "$DAEMON_PIDS" $ hg id http://localhost:$HGPORT/some/dir7 abort: HTTP Error 404: Not Found [100] $ hg id http://localhost:$HGPORT/some abort: HTTP Error 404: Not Found [100] $ cat access.log errors.log $LOCALIP - - [$LOGDATE$] "GET /some/dir7?cmd=capabilities HTTP/1.1" 404 - (glob) $LOCALIP - - [$LOGDATE$] "GET /some?cmd=capabilities HTTP/1.1" 404 - (glob) $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS issue6362: Previously, this crashed on Python 3 $ hg serve -a 0.0.0.0 -d --pid-file=hg.pid listening at http://*:$HGPORT1/ (bound to *:$HGPORT1) (glob) (?) $ cat hg.pid > "$DAEMON_PIDS" $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS $ cd ..