save settings from untrusted config files in a separate configparser
This untrusted configparser is a superset of the trusted configparser,
so that interpolation still works.
Also add an "untrusted" argument to ui.config* to allow querying
ui.ucdata.
With --debug, we print a warning when we read an untrusted config
file, and when we try to access a trusted setting that has one value
in the trusted configparser and another in the untrusted configparser.
#!/bin/sh
#
# A B
#
# 3 4 3
# |\/| |\
# |/\| | \
# 1 2 1 2
# \ / \ /
# 0 0
#
# if the result of the merge of 1 and 2
# is the same in 3 and 4, no new manifest
# will be created and the manifest group
# will be empty during the pull
#
# (plus we test a failure where outgoing
# wrongly reported the number of csets)
#
hg init a
cd a
touch init
hg ci -A -m 0 -d "1000000 0"
touch x y
hg ci -A -m 1 -d "1000000 0"
hg update 0
touch x y
hg ci -A -m 2 -d "1000000 0"
hg merge 1
hg ci -A -m m1 -d "1000000 0"
#hg log
#hg debugindex .hg/00manifest.i
hg update -C 1
hg merge 2
hg ci -A -m m2 -d "1000000 0"
#hg log
#hg debugindex .hg/00manifest.i
cd ..
hg clone -r 3 a b
hg clone -r 4 a c
hg -R a outgoing b
hg -R a outgoing c
hg -R b outgoing c
hg -R c outgoing b
hg -R b pull a
hg -R c pull a