annotate tests/test-eol-tag.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 2fc86d92c4a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26420
2fc86d92c4a9 urls: bulk-change BTS urls to new location
Matt Mackall <mpm@selenic.com>
parents: 16913
diff changeset
1 https://bz.mercurial-scm.org/2493
12974
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
2
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
3 Testing tagging with the EOL extension
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
4
13519
43b3b761d9d1 tests: don't overwrite HGRCPATH
Martin Geisler <mg@aragost.com>
parents: 12974
diff changeset
5 $ cat >> $HGRCPATH <<EOF
12974
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
6 > [extensions]
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
7 > eol =
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
8 >
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
9 > [eol]
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
10 > native = CRLF
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
11 > EOF
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
12
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
13 setup repository
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
14
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
15 $ hg init repo
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
16 $ cd repo
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
17 $ cat > .hgeol <<EOF
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
18 > [patterns]
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
19 > ** = native
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
20 > EOF
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
21 $ printf "first\r\nsecond\r\nthird\r\n" > a.txt
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
22 $ hg commit --addremove -m 'checkin'
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
23 adding .hgeol
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
24 adding a.txt
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
25
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
26 Tag:
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
27
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
28 $ hg tag 1.0
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
29
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
30 Rewrite .hgtags file as it would look on a new checkout:
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
31
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
32 $ hg update -q null
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
33 $ hg update -q
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
34
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
35 Touch .hgtags file again:
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
36
75e4fade4ad9 eol: exclude .hgtags file from eol translation (issue2493)
Colin Caughie <c.caughie@indigovision.com>
parents:
diff changeset
37 $ hg tag 2.0
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13521
diff changeset
38
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13521
diff changeset
39 $ cd ..