mirror of
https://github.com/facebook/sapling.git
synced 2024-10-16 19:57:18 +03:00
9efc7f05e3
Upon pull or unbundle, we display a message with the range of new revisions fetched. This revision range could readily be used after a pull to look out what's new with 'hg log'. The algorithm takes care of filtering "obsolete" revisions that might be present in transaction's "changes" but should not be displayed to the end user.
287 lines
7.7 KiB
Perl
287 lines
7.7 KiB
Perl
Test character encoding
|
|
|
|
$ hg init t
|
|
$ cd t
|
|
|
|
we need a repo with some legacy latin-1 changesets
|
|
|
|
$ hg unbundle "$TESTDIR/bundles/legacy-encoding.hg"
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 2 changesets with 2 changes to 1 files
|
|
new changesets 1e78a93102a3:0e5b7e3f9c4a
|
|
(run 'hg update' to get a working copy)
|
|
$ hg co
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ $PYTHON << EOF
|
|
> f = file('latin-1', 'w'); f.write("latin-1 e' encoded: \xe9"); f.close()
|
|
> f = file('utf-8', 'w'); f.write("utf-8 e' encoded: \xc3\xa9"); f.close()
|
|
> f = file('latin-1-tag', 'w'); f.write("\xe9"); f.close()
|
|
> EOF
|
|
|
|
should fail with encoding error
|
|
|
|
$ echo "plain old ascii" > a
|
|
$ hg st
|
|
M a
|
|
? latin-1
|
|
? latin-1-tag
|
|
? utf-8
|
|
$ HGENCODING=ascii hg ci -l latin-1
|
|
transaction abort!
|
|
rollback completed
|
|
abort: decoding near ' encoded: \xe9': 'ascii' codec can't decode byte 0xe9 in position 20: ordinal not in range(128)! (esc)
|
|
[255]
|
|
|
|
these should work
|
|
|
|
$ echo "latin-1" > a
|
|
$ HGENCODING=latin-1 hg ci -l latin-1
|
|
$ echo "utf-8" > a
|
|
$ HGENCODING=utf-8 hg ci -l utf-8
|
|
$ HGENCODING=latin-1 hg tag `cat latin-1-tag`
|
|
$ HGENCODING=latin-1 hg branch `cat latin-1-tag`
|
|
marked working directory as branch \xe9 (esc)
|
|
(branches are permanent and global, did you want a bookmark?)
|
|
$ HGENCODING=latin-1 hg ci -m 'latin1 branch'
|
|
$ hg -q rollback
|
|
$ HGENCODING=latin-1 hg branch
|
|
\xe9 (esc)
|
|
$ HGENCODING=latin-1 hg ci -m 'latin1 branch'
|
|
$ rm .hg/branch
|
|
|
|
hg log (ascii)
|
|
|
|
$ hg --encoding ascii log
|
|
changeset: 5:a52c0692f24a
|
|
branch: ?
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: latin1 branch
|
|
|
|
changeset: 4:94db611b4196
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: Added tag ? for changeset ca661e7520de
|
|
|
|
changeset: 3:ca661e7520de
|
|
tag: ?
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: utf-8 e' encoded: ?
|
|
|
|
changeset: 2:650c6f3d55dd
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: latin-1 e' encoded: ?
|
|
|
|
changeset: 1:0e5b7e3f9c4a
|
|
user: test
|
|
date: Mon Jan 12 13:46:40 1970 +0000
|
|
summary: koi8-r: ????? = u'\u0440\u0442\u0443\u0442\u044c'
|
|
|
|
changeset: 0:1e78a93102a3
|
|
user: test
|
|
date: Mon Jan 12 13:46:40 1970 +0000
|
|
summary: latin-1 e': ? = u'\xe9'
|
|
|
|
|
|
hg log (latin-1)
|
|
|
|
$ hg --encoding latin-1 log
|
|
changeset: 5:a52c0692f24a
|
|
branch: \xe9 (esc)
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: latin1 branch
|
|
|
|
changeset: 4:94db611b4196
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: Added tag \xe9 for changeset ca661e7520de (esc)
|
|
|
|
changeset: 3:ca661e7520de
|
|
tag: \xe9 (esc)
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: utf-8 e' encoded: \xe9 (esc)
|
|
|
|
changeset: 2:650c6f3d55dd
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: latin-1 e' encoded: \xe9 (esc)
|
|
|
|
changeset: 1:0e5b7e3f9c4a
|
|
user: test
|
|
date: Mon Jan 12 13:46:40 1970 +0000
|
|
summary: koi8-r: \xd2\xd4\xd5\xd4\xd8 = u'\\u0440\\u0442\\u0443\\u0442\\u044c' (esc)
|
|
|
|
changeset: 0:1e78a93102a3
|
|
user: test
|
|
date: Mon Jan 12 13:46:40 1970 +0000
|
|
summary: latin-1 e': \xe9 = u'\\xe9' (esc)
|
|
|
|
|
|
hg log (utf-8)
|
|
|
|
$ hg --encoding utf-8 log
|
|
changeset: 5:a52c0692f24a
|
|
branch: \xc3\xa9 (esc)
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: latin1 branch
|
|
|
|
changeset: 4:94db611b4196
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: Added tag \xc3\xa9 for changeset ca661e7520de (esc)
|
|
|
|
changeset: 3:ca661e7520de
|
|
tag: \xc3\xa9 (esc)
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: utf-8 e' encoded: \xc3\xa9 (esc)
|
|
|
|
changeset: 2:650c6f3d55dd
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: latin-1 e' encoded: \xc3\xa9 (esc)
|
|
|
|
changeset: 1:0e5b7e3f9c4a
|
|
user: test
|
|
date: Mon Jan 12 13:46:40 1970 +0000
|
|
summary: koi8-r: \xc3\x92\xc3\x94\xc3\x95\xc3\x94\xc3\x98 = u'\\u0440\\u0442\\u0443\\u0442\\u044c' (esc)
|
|
|
|
changeset: 0:1e78a93102a3
|
|
user: test
|
|
date: Mon Jan 12 13:46:40 1970 +0000
|
|
summary: latin-1 e': \xc3\xa9 = u'\\xe9' (esc)
|
|
|
|
|
|
hg tags (ascii)
|
|
|
|
$ HGENCODING=ascii hg tags
|
|
tip 5:a52c0692f24a
|
|
? 3:ca661e7520de
|
|
|
|
hg tags (latin-1)
|
|
|
|
$ HGENCODING=latin-1 hg tags
|
|
tip 5:a52c0692f24a
|
|
\xe9 3:ca661e7520de (esc)
|
|
|
|
hg tags (utf-8)
|
|
|
|
$ HGENCODING=utf-8 hg tags
|
|
tip 5:a52c0692f24a
|
|
\xc3\xa9 3:ca661e7520de (esc)
|
|
|
|
hg tags (JSON)
|
|
|
|
$ hg tags -Tjson
|
|
[
|
|
{
|
|
"node": "a52c0692f24ad921c0a31e1736e7635a8b23b670",
|
|
"rev": 5,
|
|
"tag": "tip",
|
|
"type": ""
|
|
},
|
|
{
|
|
"node": "ca661e7520dec3f5438a63590c350bebadb04989",
|
|
"rev": 3,
|
|
"tag": "\xc3\xa9", (esc)
|
|
"type": ""
|
|
}
|
|
]
|
|
|
|
hg branches (ascii)
|
|
|
|
$ HGENCODING=ascii hg branches
|
|
? 5:a52c0692f24a
|
|
default 4:94db611b4196 (inactive)
|
|
|
|
hg branches (latin-1)
|
|
|
|
$ HGENCODING=latin-1 hg branches
|
|
\xe9 5:a52c0692f24a (esc)
|
|
default 4:94db611b4196 (inactive)
|
|
|
|
hg branches (utf-8)
|
|
|
|
$ HGENCODING=utf-8 hg branches
|
|
\xc3\xa9 5:a52c0692f24a (esc)
|
|
default 4:94db611b4196 (inactive)
|
|
$ echo '[ui]' >> .hg/hgrc
|
|
$ echo 'fallbackencoding = koi8-r' >> .hg/hgrc
|
|
|
|
hg log (utf-8)
|
|
|
|
$ HGENCODING=utf-8 hg log
|
|
changeset: 5:a52c0692f24a
|
|
branch: \xc3\xa9 (esc)
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: latin1 branch
|
|
|
|
changeset: 4:94db611b4196
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: Added tag \xc3\xa9 for changeset ca661e7520de (esc)
|
|
|
|
changeset: 3:ca661e7520de
|
|
tag: \xc3\xa9 (esc)
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: utf-8 e' encoded: \xc3\xa9 (esc)
|
|
|
|
changeset: 2:650c6f3d55dd
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: latin-1 e' encoded: \xc3\xa9 (esc)
|
|
|
|
changeset: 1:0e5b7e3f9c4a
|
|
user: test
|
|
date: Mon Jan 12 13:46:40 1970 +0000
|
|
summary: koi8-r: \xd1\x80\xd1\x82\xd1\x83\xd1\x82\xd1\x8c = u'\\u0440\\u0442\\u0443\\u0442\\u044c' (esc)
|
|
|
|
changeset: 0:1e78a93102a3
|
|
user: test
|
|
date: Mon Jan 12 13:46:40 1970 +0000
|
|
summary: latin-1 e': \xd0\x98 = u'\\xe9' (esc)
|
|
|
|
|
|
hg log (dolphin)
|
|
|
|
$ HGENCODING=dolphin hg log
|
|
abort: unknown encoding: dolphin
|
|
(please check your locale settings)
|
|
[255]
|
|
$ HGENCODING=ascii hg branch `cat latin-1-tag`
|
|
abort: decoding near '\xe9': 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)! (esc)
|
|
[255]
|
|
$ cp latin-1-tag .hg/branch
|
|
$ HGENCODING=latin-1 hg ci -m 'auto-promote legacy name'
|
|
|
|
Test roundtrip encoding of lookup tables when not using UTF-8 (issue2763)
|
|
|
|
$ HGENCODING=latin-1 hg up `cat latin-1-tag`
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
|
$ cd ..
|
|
|
|
Test roundtrip encoding/decoding of utf8b for generated data
|
|
|
|
#if hypothesis
|
|
|
|
>>> from hypothesishelpers import *
|
|
>>> from mercurial import encoding
|
|
>>> roundtrips(st.binary(), encoding.fromutf8b, encoding.toutf8b)
|
|
Round trip OK
|
|
|
|
#endif
|