tests/test-copy2
author Dirkjan Ochtman <dirkjan@ochtman.nl>
Tue, 25 Sep 2007 19:05:34 +0200
changeset 5337 8c5ef3b87cb1
parent 4777 44e17f5029d0
permissions -rwxr-xr-x
Don't try to determine interactivity if ui() called with interactive=False. WSGI applications are not supposed to refer to sys.stdin. In ed6df6b1c29a, hgweb and hgwebdir were fixed to pass interactive=False to their ui()'s, but sys.stdin.isatty() was still called by the ui objects. This change makes sure only the ui.fixconfig() method will call ui.isatty() (by making the ui._readline() method, which is currently only called from ui.prompt(), private). ui.fixconfig() is changed to let config files override the initial interactivity setting, but not check isatty() if interactive=False was specified in the creation of the ui.

#!/bin/sh

hg init
echo foo > foo
echo "# should fail - foo is not managed"
hg mv foo bar
hg st -A
hg add foo
echo "# dry-run; print a warning that this is not a real copy; foo is added"
hg mv --dry-run foo bar
hg st -A
echo "# should print a warning that this is not a real copy; bar is added"
hg mv foo bar
hg st -A
echo "# should print a warning that this is not a real copy; foo is added"
hg cp bar foo
hg rm -f bar
rm bar
hg st -A
hg commit -m1 -d"0 0"

echo "# dry-run; should show that foo is clean"
hg copy --dry-run foo bar
hg st -A
echo "# should show copy"
hg copy foo bar
hg st -C

echo "# shouldn't show copy"
hg commit -m2 -d"0 0"
hg st -C

echo "# should match"
hg debugindex .hg/store/data/foo.i
hg debugrename bar

echo bleah > foo
echo quux > bar
hg commit -m3 -d"0 0"

echo "# should not be renamed"
hg debugrename bar

hg copy -f foo bar
echo "# should show copy"
hg st -C
hg commit -m3 -d"0 0"

echo "# should show no parents for tip"
hg debugindex .hg/store/data/bar.i
echo "# should match"
hg debugindex .hg/store/data/foo.i
hg debugrename bar

echo "# should show no copies"
hg st -C

echo "# copy --after on an added file"
cp bar baz
hg add baz
hg cp -A bar baz
hg st -C

echo "# foo was clean:"
hg st -AC foo
echo "# but it's considered modified after a copy --after --force"
hg copy -Af bar foo
hg st -AC foo

exit 0