Mercurial > hg
view tests/test-hgrc.t @ 46531:d46885119f90
test-copies: don't use empty file for "same content" cases
For main case (using filelog or sidedata), this lead to the following hash
change.
Changesets:
- 01c2f5eabdc4ce2bdee42b5f86311955e6c8f573 → 319179230cc87769ab3a861ebffe7a534ebb3d85
- 01c2f5eabdc4 → 319179230cc8
- c72365ee036fca4fb27fd745459bfb6ea1ac6993 → 6cbc9c2b7b391dd738603173717c601648d3735f
- c72365ee036f → 6cbc9c2b7b39
File revision for `f`:
- 0dd616bc7ab1a111921d95d76f69cda5c2ac539c → cedeacc5bf5d9b9be4d7f8394d33a5349bb29c6e
- 0dd616bc7ab1 → cedeacc5bf5d
- eb806e34ef6be4c264effd5933d31004ad15a793 → ffb76cd765422a18759a335d8a81fa2bd455be6b
- eb806e34ef6b → ffb76cd76542
- 6da5a2eecb9c833f830b67a4972366d49a9a142c → 08d1ff5926fbd0285cdeb044cbe8ab651687e86a
- 6da5a2eecb9c → 08d1ff5926fb
File revision for `d`:
- 7bded9d9da1f7bf9bf7cbfb24fe1e6ccf68ec440 → ba177bbb45ea930ee48469a55d40224537bd57a9
For the "extra in changeset" case we get the following change for file `d`:
- 68d5bca9df0577b6bc2ea30ca724e13ead60da81 → b894de5c94aadcb4894ea7c358389819c27fbcce
- 68d5bca9df05 → b894de5c94aa
- b80de5d138758541c5f05265ad144ab9fa86d1db → 56647659eff080e06e45c18ea9e848836dadea71
- b80de5d13875 → 56647659eff0
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 22 Feb 2021 18:48:45 +0100 |
parents | 9dc1351d0b5f |
children | e96a0a53de20 |
line wrap: on
line source
Use hgrc within $TESTTMP $ HGRCPATH=`pwd`/hgrc $ export HGRCPATH hide outer repo $ hg init Use an alternate var for scribbling on hgrc to keep check-code from complaining about the important settings we may be overwriting: $ HGRC=`pwd`/hgrc $ export HGRC Basic syntax error $ echo "invalid" > $HGRC $ hg version config error at $TESTTMP/hgrc:1: invalid [255] $ echo "" > $HGRC Issue1199: Can't use '%' in hgrc (eg url encoded username) $ hg init "foo%bar" $ hg clone "foo%bar" foobar updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd foobar $ cat .hg/hgrc # example repository config (see 'hg help config' for more info) [paths] default = $TESTTMP/foo%bar # path aliases to other clones of this repo in URLs or filesystem paths # (see 'hg help config.paths' for more info) # # default:pushurl = ssh://jdoe@example.net/hg/jdoes-fork # my-fork = ssh://jdoe@example.net/hg/jdoes-fork # my-clone = /home/jdoe/jdoes-clone [ui] # name and email (local to this repository, optional), e.g. # username = Jane Doe <jdoe@example.com> $ hg paths default = $TESTTMP/foo%bar $ hg showconfig bundle.mainreporoot=$TESTTMP/foobar paths.default=$TESTTMP/foo%bar $ cd .. Check %include $ echo '[section]' > $TESTTMP/included $ echo 'option = value' >> $TESTTMP/included $ echo '%include $TESTTMP/included' >> $HGRC $ hg showconfig section section.option=value #if unix-permissions no-root $ chmod u-r $TESTTMP/included $ hg showconfig section config error at $TESTTMP/hgrc:2: cannot include $TESTTMP/included (Permission denied) [255] #endif issue1829: wrong indentation $ echo '[foo]' > $HGRC $ echo ' x = y' >> $HGRC $ hg version config error at $TESTTMP/hgrc:2: unexpected leading whitespace: x = y [255] $ "$PYTHON" -c "from __future__ import print_function; print('[foo]\nbar = a\n b\n c \n de\n fg \nbaz = bif cb \n')" \ > > $HGRC $ hg showconfig foo foo.bar=a\nb\nc\nde\nfg foo.baz=bif cb $ FAKEPATH=/path/to/nowhere $ export FAKEPATH $ echo '%include $FAKEPATH/no-such-file' > $HGRC $ hg version Mercurial Distributed SCM (version *) (glob) (see https://mercurial-scm.org for more information) Copyright (C) 2005-* Matt Mackall and others (glob) This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ unset FAKEPATH make sure global options given on the cmdline take precedence $ hg showconfig --config ui.verbose=True --quiet bundle.mainreporoot=$TESTTMP ui.verbose=False ui.debug=False ui.quiet=True $ touch foobar/untracked $ cat >> foobar/.hg/hgrc <<EOF > [ui] > verbose=True > EOF $ hg -R foobar st -q username expansion $ olduser=$HGUSER $ unset HGUSER $ FAKEUSER='John Doe' $ export FAKEUSER $ echo '[ui]' > $HGRC $ echo 'username = $FAKEUSER' >> $HGRC $ hg init usertest $ cd usertest $ touch bar $ hg commit --addremove --quiet -m "added bar" $ hg log --template "{author}\n" John Doe $ cd .. $ hg showconfig bundle.mainreporoot=$TESTTMP ui.username=$FAKEUSER $ unset FAKEUSER $ HGUSER=$olduser $ export HGUSER showconfig with multiple arguments $ echo "[alias]" > $HGRC $ echo "log = log -g" >> $HGRC $ echo "[defaults]" >> $HGRC $ echo "identify = -n" >> $HGRC $ hg showconfig alias defaults alias.log=log -g defaults.identify=-n $ hg showconfig alias alias alias.log=log -g $ hg showconfig alias.log alias.log alias.log=log -g $ hg showconfig alias defaults.identify alias.log=log -g defaults.identify=-n $ hg showconfig alias.log defaults.identify alias.log=log -g defaults.identify=-n HGPLAIN $ echo "[ui]" > $HGRC $ echo "debug=true" >> $HGRC $ echo "fallbackencoding=ASCII" >> $HGRC $ echo "quiet=true" >> $HGRC $ echo "slash=true" >> $HGRC $ echo "traceback=true" >> $HGRC $ echo "verbose=true" >> $HGRC $ echo "style=~/.hgstyle" >> $HGRC $ echo "logtemplate={node}" >> $HGRC $ echo "[defaults]" >> $HGRC $ echo "identify=-n" >> $HGRC $ echo "[alias]" >> $HGRC $ echo "log=log -g" >> $HGRC customized hgrc $ hg showconfig read config from: $TESTTMP/hgrc $TESTTMP/hgrc:13: alias.log=log -g repo: bundle.mainreporoot=$TESTTMP $TESTTMP/hgrc:11: defaults.identify=-n $TESTTMP/hgrc:2: ui.debug=true $TESTTMP/hgrc:3: ui.fallbackencoding=ASCII $TESTTMP/hgrc:4: ui.quiet=true $TESTTMP/hgrc:5: ui.slash=true $TESTTMP/hgrc:6: ui.traceback=true $TESTTMP/hgrc:7: ui.verbose=true $TESTTMP/hgrc:8: ui.style=~/.hgstyle $TESTTMP/hgrc:9: ui.logtemplate={node} plain hgrc $ HGPLAIN=; export HGPLAIN $ hg showconfig --config ui.traceback=True --debug read config from: $TESTTMP/hgrc repo: bundle.mainreporoot=$TESTTMP --config: ui.traceback=True --verbose: ui.verbose=False --debug: ui.debug=True --quiet: ui.quiet=False with environment variables $ PAGER=p1 EDITOR=e1 VISUAL=e2 hg showconfig --debug read config from: $TESTTMP/hgrc repo: bundle.mainreporoot=$TESTTMP $PAGER: pager.pager=p1 $VISUAL: ui.editor=e2 --verbose: ui.verbose=False --debug: ui.debug=True --quiet: ui.quiet=False plain mode with exceptions $ cat > plain.py <<EOF > from mercurial import commands, extensions > def _config(orig, ui, repo, *values, **opts): > ui.write(b'plain: %r\n' % ui.plain()) > return orig(ui, repo, *values, **opts) > def uisetup(ui): > extensions.wrapcommand(commands.table, b'config', _config) > EOF $ echo "[extensions]" >> $HGRC $ echo "plain=./plain.py" >> $HGRC $ HGPLAINEXCEPT=; export HGPLAINEXCEPT $ hg showconfig --config ui.traceback=True --debug plain: True read config from: $TESTTMP/hgrc repo: bundle.mainreporoot=$TESTTMP $TESTTMP/hgrc:15: extensions.plain=./plain.py --config: ui.traceback=True --verbose: ui.verbose=False --debug: ui.debug=True --quiet: ui.quiet=False $ unset HGPLAIN $ hg showconfig --config ui.traceback=True --debug plain: True read config from: $TESTTMP/hgrc repo: bundle.mainreporoot=$TESTTMP $TESTTMP/hgrc:15: extensions.plain=./plain.py --config: ui.traceback=True --verbose: ui.verbose=False --debug: ui.debug=True --quiet: ui.quiet=False $ HGPLAINEXCEPT=i18n; export HGPLAINEXCEPT $ hg showconfig --config ui.traceback=True --debug plain: True read config from: $TESTTMP/hgrc repo: bundle.mainreporoot=$TESTTMP $TESTTMP/hgrc:15: extensions.plain=./plain.py --config: ui.traceback=True --verbose: ui.verbose=False --debug: ui.debug=True --quiet: ui.quiet=False source of paths is not mangled $ cat >> $HGRCPATH <<EOF > [paths] > foo = bar > EOF $ hg showconfig --debug paths plain: True read config from: $TESTTMP/hgrc $TESTTMP/hgrc:17: paths.foo=$TESTTMP/bar Test we can skip the user configuration $ cat >> .hg/hgrc <<EOF > [paths] > elephant = babar > EOF $ hg path elephant = $TESTTMP/babar foo = $TESTTMP/bar $ HGRCSKIPREPO=1 hg path foo = $TESTTMP/bar $ cat >> .hg/hgrc <<EOF > [broken > EOF $ hg path config error at $TESTTMP/.hg/hgrc:3: [broken [255] $ HGRCSKIPREPO=1 hg path foo = $TESTTMP/bar Check that hgweb respect HGRCSKIPREPO=1 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log config error at $TESTTMP/.hg/hgrc:3: [broken [255] $ test -f hg.pid && (cat hg.pid >> $DAEMON_PIDS) [1] $ killdaemons.py $ test -f access.log && cat access.log [1] $ test -f errors.log && cat errors.log [1] $ HGRCSKIPREPO=1 hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log $ cat hg.pid >> $DAEMON_PIDS $ killdaemons.py $ cat access.log $ cat errors.log Check that zeroconf respect HGRCSKIPREPO=1 $ hg paths --config extensions.zeroconf= config error at $TESTTMP/.hg/hgrc:3: [broken [255] $ HGRCSKIPREPO=1 hg paths --config extensions.zeroconf= foo = $TESTTMP/bar