view tests/test-serve @ 12687:34d8247a4595

store: encode first period or space in filenames (issue1713) - Mac OS X has problems with filenames starting with '._' (e.g. '.FOO' -> '._f_o_o' is now encoded as '~2e_f_o_o') - Explorer of Windows Vista and Windows 7 strip leading spaces of path elements of filenames when copying trees Above problems are avoided by encoding the first space (as '~20') or period (as '~2e') of all path elements. This introduces a new entry 'dotencode' in .hg/requires, that is, a new repository filename layout (inside .hg/store). Newly created repositories require 'dotencode' by default. Specifying [format] dotencode = False in a config file will use the old format instead. Prior Mercurial versions will abort with the message abort: requirement 'dotencode' not supported! when trying to access a local repository that requires 'dotencode'. New 'dotencode' repositories can be converted to the previous repository format with hg --config format.dotencode=0 clone --pull repoA repoB
author Adrian Buehlmann <adrian@cadifra.com>
date Sat, 09 Oct 2010 21:54:50 +0200
parents fdb0983ad395
children
line wrap: on
line source

#!/bin/sh

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\//'
    cat hg.pid >> "$DAEMON_PIDS"
    echo % errors
    cat errors.log
    sleep 1
    if [ "$KILLQUIETLY" = "Y" ]; then
        kill `cat hg.pid` 2>/dev/null
    else
        kill `cat hg.pid`
    fi
    sleep 1
}

hg init test
cd test

echo '[web]' > .hg/hgrc
echo 'accesslog = access.log' >> .hg/hgrc
echo "port = $HGPORT1" >> .hg/hgrc

echo % 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
echo % errors
cat errors.log

echo % With -v
hgserve

echo % With -v and -p HGPORT2
hgserve -p "$HGPORT2"

echo '% With -v and -p daytime (should fail because low port)'
KILLQUIETLY=Y
hgserve -p daytime
KILLQUIETLY=N

echo % With --prefix foo
hgserve --prefix foo

echo % With --prefix /foo
hgserve --prefix /foo

echo % With --prefix foo/
hgserve --prefix foo/

echo % With --prefix /foo/
hgserve --prefix /foo/