Mercurial > hg
annotate tests/test-revlog-group-emptyiter.t @ 46667:93e9f448273c
rhg: Add support for automatic fallback to Python
`rhg` is a command-line application that can do a small subset of what
`hg` can. It is written entirely in Rust, which avoids the cost of starting
a Python interpreter and importing many Python modules.
In a script that runs many `hg` commands, this cost can add up.
However making users decide when to use `rhg` instead of `hg` is
not practical as we want the subset of supported functionality
to grow over time.
Instead we introduce "fallback" behavior where, when `rhg` encounters
something (a sub-command, a repository format, …) that is not implemented
in Rust-only, it does nothing but silently start a subprocess of
Python-based `hg` running the same command.
That way `rhg` becomes a drop-in replacement for `hg` that sometimes
goes faster. Whether Python is used should be an implementation detail
not apparent to users (other than through speed).
A new `fallback` value is added to the previously introduced
`rhg.on-unsupported` configuration key. When in this mode, the new
`rhg.fallback-executable` config is determine what command to use
to run a Python-based `hg`.
The previous `rhg.on-unsupported = abort-silent` configuration was designed
to let a wrapper script call `rhg` and then fall back to `hg` based on the
exit code. This is still available, but having fallback behavior built-in
in rhg might be easier for users instead of leaving that script "as an
exercise for the reader".
Using a subprocess like this is not idea, especially when `rhg` is to be
installed in `$PATH` as `hg`, since the other `hg.py` executable needs
to still be available… somewhere. Eventually this could be replaced
by using PyOxidizer to a have a single executable that embeds a Python
interpreter, but only starts it when needed.
Differential Revision: https://phab.mercurial-scm.org/D10093
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Mon, 01 Mar 2021 20:36:06 +0100 |
parents | f2719b387380 |
children |
rev | line source |
---|---|
12399
4fee1fd3de9a
tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents:
12328
diff
changeset
|
1 Issue1678: IndexError when pushing |
12328
b63f6422d2a7
tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents:
11918
diff
changeset
|
2 |
11918
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
3 setting up base repo |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
4 $ hg init a |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
5 $ cd a |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
6 $ touch a |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
7 $ hg ci -Am a |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
8 adding a |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
9 $ cd .. |
8635
aaaf4af1c173
revlog: add test for 7659eecd9da2 (issue1678)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
10 |
11918
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
11 cloning base repo |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
12 $ hg clone a b |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
13 updating to branch default |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
14 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
15 $ cd b |
8635
aaaf4af1c173
revlog: add test for 7659eecd9da2 (issue1678)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
16 |
11918
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
17 setting up cset to push |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
18 $ hg up null |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
19 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
20 $ touch a |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
21 different msg so we get a clog new entry |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
22 $ hg ci -Am b |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
23 adding a |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
24 created new head |
8635
aaaf4af1c173
revlog: add test for 7659eecd9da2 (issue1678)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
25 |
11918
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
26 pushing |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
27 $ hg push -f ../a |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
28 pushing to ../a |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
29 searching for changes |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
30 adding changesets |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
31 adding manifests |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
32 adding file changes |
f21ecd091970
tests: unify test-revlog-group-emptyiter
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8635
diff
changeset
|
33 added 1 changesets with 0 changes to 0 files (+1 heads) |
8635
aaaf4af1c173
revlog: add test for 7659eecd9da2 (issue1678)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
34 |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12399
diff
changeset
|
35 $ cd .. |