Use a case-sensitive version of SafeConfigParser everywhere
This change has the potential to break existing setups, but the current
behaviour (the keys in configuration files are always lower-cased) can
bite us in a few places:
- no way to use a Command in [defaults]
- hgext.Extension doesn't work in [extensions]
- you can't use an Upper/case/PATH in the [paths] section of hgweb.config
- you can't (easily) protect paths with upper-case letters with the
acl extension
- you can't specify a /Path/TO/a/rEPO in the [reposubs] section for
the notify extension
#!/bin/sh
hg init a
cd a
echo a > a
hg ci -Ama -d '1 0'
hg cp a b
hg ci -mb -d '2 0'
mkdir dir
hg mv b dir
hg ci -mc -d '3 0'
hg mv a b
hg ci -md -d '4 0'
hg mv dir/b e
hg ci -me -d '5 0'
hg log a
echo % -f, directory
hg log -f dir
echo % -f, but no args
hg log -f
echo % one rename
hg log -vf a
echo % many renames
hg log -vf e
echo % log copies
hg log -vC --template '{rev} {file_copies%filecopy}\n'
echo % log copies, non-linear manifest
hg up -C 3
hg mv dir/b e
echo foo > foo
hg ci -Ame2 -d '6 0'
hg log -vC --template '{rev} {file_copies%filecopy}\n' -r 5
# log --follow tests
hg init ../follow
cd ../follow
echo base > base
hg ci -Ambase -d '1 0'
echo r1 >> base
hg ci -Amr1 -d '1 0'
echo r2 >> base
hg ci -Amr2 -d '1 0'
hg up -C 1
echo b1 > b1
hg ci -Amb1 -d '1 0'
echo % log -f
hg log -f
hg up -C 0
echo b2 > b2
hg ci -Amb2 -d '1 0'
echo % log -f -r 1:tip
hg log -f -r 1:tip
hg up -C 3
hg merge tip
hg ci -mm12 -d '1 0'
echo postm >> b1
hg ci -Amb1.1 -d'1 0'
echo % log --follow-first
hg log --follow-first
echo % log -P 2
hg log -P 2