annotate tests/test-abort-checkin.t @ 44261:04a3ae7aba14

chg: force-set LC_CTYPE on server start to actual value from the environment Python 3.7+ will "coerce" the LC_CTYPE variable in many instances, and this can cause issues with chg being able to start up. D7550 attempted to fix this, but a combination of a misreading of the way that python3.7 does the coercion and an untested state (LC_CTYPE being set to an invalid value) meant that this was still not quite working. This change will cause differences between chg and hg: hg will have the LC_CTYPE environment variable coerced, while chg will not. This is unlikely to cause any detectable behavior differences in what Mercurial itself outputs, but it does have two known effects: - When using hg, the coerced LC_CTYPE will be passed to subprocesses, even non-python ones. Using chg will remove the coercion, and this will not happen. This is arguably more correct behavior on chg's part. - On macOS, if you set your region to Brazil but your language to English, this isn't representable in locale strings, so macOS sets LC_CTYPE=UTF-8. If this value is passed along when ssh'ing to a non-macOS machine, some functions (such as locale.setlocale()) may raise an exception due to an unsupported locale setting. This is most easily encountered when doing an interactive commit/split/etc. when using ui.interface=curses. Differential Revision: https://phab.mercurial-scm.org/D8039
author Kyle Lippincott <spectral@google.com>
date Wed, 29 Jan 2020 13:39:50 -0800
parents f798709eb4b9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
1 $ cat > abortcommit.py <<EOF
26587
56b2bcea2529 error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23172
diff changeset
2 > from mercurial import error
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
3 > def hook(**args):
36375
f798709eb4b9 py3: add b'' prefixes in test-abort-checkin.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 26587
diff changeset
4 > raise error.Abort(b"no commits allowed")
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
5 > def reposetup(ui, repo):
36375
f798709eb4b9 py3: add b'' prefixes in test-abort-checkin.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 26587
diff changeset
6 > repo.ui.setconfig(b"hooks", b"pretxncommit.nocommits", hook)
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
7 > EOF
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
8 $ abspath=`pwd`/abortcommit.py
4140
193e0f8d9a47 test-abort-checkin: use a hook to abort the commit
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2990
diff changeset
9
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
10 $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
11 > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
12 > mq =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
13 > abortcommit = $abspath
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
14 > EOF
4140
193e0f8d9a47 test-abort-checkin: use a hook to abort the commit
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2990
diff changeset
15
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
16 $ hg init foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
17 $ cd foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
18 $ echo foo > foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
19 $ hg add foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
20
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
21 mq may keep a reference to the repository so __del__ will not be
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
22 called and .hg/journal.dirstate will not be deleted:
2726
6bd351194a96 Add test mq keeping a reference to localrepo which can't remove journal on exit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
23
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
24 $ hg ci -m foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
25 error: pretxncommit.nocommits hook failed: no commits allowed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
26 transaction abort!
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
27 rollback completed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
28 abort: no commits allowed
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11848
diff changeset
29 [255]
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
30 $ hg ci -m foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
31 error: pretxncommit.nocommits hook failed: no commits allowed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
32 transaction abort!
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
33 rollback completed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
34 abort: no commits allowed
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11848
diff changeset
35 [255]
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12327
diff changeset
36
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12327
diff changeset
37 $ cd ..