test-basic.t
228 lines
| 4.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-basic.t
Matt Mackall
|
r11742 | Create a repository: | ||
Gregory Szorc
|
r37360 | #if no-extraextensions | ||
Matt Mackall
|
r20608 | $ hg config | ||
Pierre-Yves David
|
r25290 | devel.all-warnings=true | ||
r32410 | devel.default-date=0 0 | |||
FUJIWARA Katsunori
|
r33426 | extensions.fsmonitor= (fsmonitor !) | ||
Matt Harbison
|
r35394 | largefiles.usercache=$TESTTMP/.cache/largefiles | ||
lfs.usercache=$TESTTMP/.cache/lfs | ||||
Matt Mackall
|
r20608 | ui.slash=True | ||
ui.interactive=False | ||||
Martin von Zweigbergk
|
r46430 | ui.detailed-exit-code=True | ||
Boris Feld
|
r40506 | ui.merge=internal:merge | ||
FUJIWARA Katsunori
|
r21918 | ui.mergemarkers=detailed | ||
Yuya Nishihara
|
r23053 | ui.promptecho=True | ||
Jun Wu
|
r31009 | web.address=localhost | ||
Jun Wu
|
r31010 | web\.ipv6=(?:True|False) (re) | ||
Gregory Szorc
|
r37027 | web.server-header=testing stub value | ||
Gregory Szorc
|
r37360 | #endif | ||
Martin Geisler
|
r13956 | $ hg init t | ||
Matt Mackall
|
r11742 | $ cd t | ||
Bryan O'Sullivan
|
r31964 | Prepare a changeset: | ||
Matt Mackall
|
r11742 | |||
$ echo a > a | ||||
$ hg add a | ||||
Bryan O'Sullivan
|
r31964 | |||
$ hg status | ||||
A a | ||||
Writes to stdio succeed and fail appropriately | ||||
#if devfull | ||||
$ hg status 2>/dev/full | ||||
A a | ||||
$ hg status >/dev/full | ||||
abort: No space left on device | ||||
[255] | ||||
Saurabh Singh
|
r34449 | #endif | ||
Bryan O'Sullivan
|
r31964 | |||
Gregory Szorc
|
r35671 | #if devfull | ||
Saurabh Singh
|
r34449 | $ hg status >/dev/full 2>&1 | ||
[255] | ||||
$ hg status ENOENT 2>/dev/full | ||||
[255] | ||||
#endif | ||||
Martin Geisler
|
r12156 | $ hg commit -m test | ||
Matt Mackall
|
r11742 | |||
This command is ancient: | ||||
$ hg history | ||||
Martin Geisler
|
r12156 | changeset: 0:acb14030fe0a | ||
Matt Mackall
|
r11742 | tag: tip | ||
user: test | ||||
Martin Geisler
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
Matt Mackall
|
r11742 | summary: test | ||
Mark Drago
|
r13568 | Verify that updating to revision 0 via commands.update() works properly | ||
$ cat <<EOF > update_to_rev0.py | ||||
Matt Harbison
|
r40405 | > from mercurial import commands, hg, ui as uimod | ||
> myui = uimod.ui.load() | ||||
Yuya Nishihara
|
r36656 | > repo = hg.repository(myui, path=b'.') | ||
Martin von Zweigbergk
|
r38499 | > commands.update(myui, repo, rev=b"0") | ||
Mark Drago
|
r13568 | > EOF | ||
$ hg up null | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
Matt Harbison
|
r39743 | $ "$PYTHON" ./update_to_rev0.py | ||
Mark Drago
|
r13568 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
$ hg identify -n | ||||
0 | ||||
Mads Kiilerich
|
r17346 | |||
Mark Drago
|
r13568 | |||
Matt Mackall
|
r11742 | Poke around at hashes: | ||
$ hg manifest --debug | ||||
b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a | ||||
$ hg cat a | ||||
a | ||||
Verify should succeed: | ||||
$ hg verify | ||||
checking changesets | ||||
checking manifests | ||||
crosschecking files in changesets and manifests | ||||
checking files | ||||
Meirambek Omyrzak
|
r39525 | checked 1 changesets with 1 changes to 1 files | ||
Matt Mackall
|
r11742 | |||
Yuya Nishihara
|
r36261 | Repository root: | ||
$ hg root | ||||
$TESTTMP/t | ||||
$ hg log -l1 -T '{reporoot}\n' | ||||
$TESTTMP/t | ||||
Yuya Nishihara
|
r42610 | $ hg root -Tjson | sed 's|\\\\|\\|g' | ||
[ | ||||
{ | ||||
Yuya Nishihara
|
r42611 | "hgpath": "$TESTTMP/t/.hg", | ||
"reporoot": "$TESTTMP/t", | ||||
"storepath": "$TESTTMP/t/.hg/store" | ||||
Yuya Nishihara
|
r42610 | } | ||
] | ||||
Yuya Nishihara
|
r36261 | |||
Matt Mackall
|
r11742 | At the end... | ||
Mads Kiilerich
|
r16913 | |||
$ cd .. | ||||
Yuya Nishihara
|
r40580 | |||
Status message redirection: | ||||
$ hg init empty | ||||
status messages are sent to stdout by default: | ||||
$ hg outgoing -R t empty -Tjson 2>/dev/null | ||||
comparing with empty | ||||
searching for changes | ||||
[ | ||||
{ | ||||
"bookmarks": [], | ||||
"branch": "default", | ||||
"date": [0, 0], | ||||
"desc": "test", | ||||
"node": "acb14030fe0a21b60322c440ad2d20cf7685a376", | ||||
"parents": ["0000000000000000000000000000000000000000"], | ||||
"phase": "draft", | ||||
"rev": 0, | ||||
"tags": ["tip"], | ||||
"user": "test" | ||||
} | ||||
] | ||||
which can be configured to send to stderr, so the output wouldn't be | ||||
interleaved: | ||||
$ cat <<'EOF' >> "$HGRCPATH" | ||||
> [ui] | ||||
> message-output = stderr | ||||
> EOF | ||||
$ hg outgoing -R t empty -Tjson 2>/dev/null | ||||
[ | ||||
{ | ||||
"bookmarks": [], | ||||
"branch": "default", | ||||
"date": [0, 0], | ||||
"desc": "test", | ||||
"node": "acb14030fe0a21b60322c440ad2d20cf7685a376", | ||||
"parents": ["0000000000000000000000000000000000000000"], | ||||
"phase": "draft", | ||||
"rev": 0, | ||||
"tags": ["tip"], | ||||
"user": "test" | ||||
} | ||||
] | ||||
$ hg outgoing -R t empty -Tjson >/dev/null | ||||
comparing with empty | ||||
searching for changes | ||||
this option should be turned off by HGPLAIN= since it may break scripting use: | ||||
$ HGPLAIN= hg outgoing -R t empty -Tjson 2>/dev/null | ||||
comparing with empty | ||||
searching for changes | ||||
[ | ||||
{ | ||||
"bookmarks": [], | ||||
"branch": "default", | ||||
"date": [0, 0], | ||||
"desc": "test", | ||||
"node": "acb14030fe0a21b60322c440ad2d20cf7685a376", | ||||
"parents": ["0000000000000000000000000000000000000000"], | ||||
"phase": "draft", | ||||
"rev": 0, | ||||
"tags": ["tip"], | ||||
"user": "test" | ||||
} | ||||
] | ||||
but still overridden by --config: | ||||
$ HGPLAIN= hg outgoing -R t empty -Tjson --config ui.message-output=stderr \ | ||||
> 2>/dev/null | ||||
[ | ||||
{ | ||||
"bookmarks": [], | ||||
"branch": "default", | ||||
"date": [0, 0], | ||||
"desc": "test", | ||||
"node": "acb14030fe0a21b60322c440ad2d20cf7685a376", | ||||
"parents": ["0000000000000000000000000000000000000000"], | ||||
"phase": "draft", | ||||
"rev": 0, | ||||
"tags": ["tip"], | ||||
"user": "test" | ||||
} | ||||
] | ||||
Invalid ui.message-output option: | ||||
$ hg log -R t --config ui.message-output=bad | ||||
abort: invalid ui.message-output destination: bad | ||||
[255] | ||||
Underlying message streams should be updated when ui.fout/ferr are set: | ||||
$ cat <<'EOF' > capui.py | ||||
> from mercurial import pycompat, registrar | ||||
> cmdtable = {} | ||||
> command = registrar.command(cmdtable) | ||||
> @command(b'capui', norepo=True) | ||||
> def capui(ui): | ||||
> out = ui.fout | ||||
> ui.fout = pycompat.bytesio() | ||||
> ui.status(b'status\n') | ||||
> ui.ferr = pycompat.bytesio() | ||||
> ui.warn(b'warn\n') | ||||
> out.write(b'stdout: %s' % ui.fout.getvalue()) | ||||
> out.write(b'stderr: %s' % ui.ferr.getvalue()) | ||||
> EOF | ||||
$ hg --config extensions.capui=capui.py --config ui.message-output=stdio capui | ||||
stdout: status | ||||
stderr: warn | ||||