##// END OF EJS Templates
revisions: allow "x123" to refer to nodeid prefix "123"...
revisions: allow "x123" to refer to nodeid prefix "123" When resolving "123" to a revision, we try to interpret it as revnum before we try to interpret it as a nodeid hex prefix. This can lead to the shortest valid prefix being longer than necessary. This patch lets us write such nodeids in a shorter form by prefixing them with "x" instead of adding more hex digits until they're longer than the longest decimal revnum. On my hg repo with almost 69k revisions, turning this feature on saves on average 0.4% on the average nodeid length. That clearly doesn't justify this patch. However, it becomes more usefule when combined with the earlier patches in this series that let you disambiguate nodeid prefixes within a configured revset. Note that we attempt to resolve symbols as nodeid prefixes after we've exhausted all other posibilities, so this is a backwards compatible change (only queries that would previously fail may now succeed). I've still hidden this feature behind an experiemntal config option so we can roll it back if needed. Differential Revision: https://phab.mercurial-scm.org/D4041

File last commit:

r37956:a2cfea19 default
r38891:7848f284 default
Show More
test-ui-config.py.out
53 lines | 1.5 KiB | text/plain | TextLexer
/ tests / test-ui-config.py.out
Sune Foldager
ui: add configint function and tests
r14171 [('string', 'string value'), ('bool1', 'true'), ('bool2', 'false'), ('boolinvalid', 'foo'), ('int1', '42'), ('int2', '-42'), ('intinvalid', 'foo')]
Tony Tung
dispatch: strip command line options like config file options...
r28081 [('list1', 'foo'), ('list2', 'foo bar baz'), ('list3', 'alice, bob'), ('list4', 'foo bar baz alice, bob'), ('list5', 'abc d"ef"g "hij def"'), ('list6', '"hello world", "how are you?"'), ('list7', 'Do"Not"Separate'), ('list8', '"Do"Separate'), ('list9', '"Do\\"NotSeparate"'), ('list10', 'string "with extraneous" quotation mark"'), ('list11', 'x, y'), ('list12', '"x", "y"'), ('list13', '""" key = "x", "y" """'), ('list14', ',,,,'), ('list15', '" just with starting quotation'), ('list16', '"longer quotation" with "no ending quotation'), ('list17', 'this is \\" "not a quotation mark"'), ('list18', 'ding\ndong')]
Martin Geisler
tests: renamed Python tests to .py
r8449 ---
'string value'
'true'
'false'
None
---
Augie Fackler
tests: port test-ui-config to Python 3...
r37956 'values.string is not a boolean (\'string value\')'
Martin Geisler
tests: renamed Python tests to .py
r8449 True
False
False
False
True
---
Sune Foldager
ui: add configint function and tests
r14171 42
-42
---
Martin Geisler
tests: renamed Python tests to .py
r8449 ['foo']
['foo', 'bar', 'baz']
['alice', 'bob']
['foo', 'bar', 'baz', 'alice', 'bob']
['foo', 'bar', 'baz', 'alice', 'bob']
Henrik Stuart
ui: support quotes in configlist (issue2147)...
r10982 ['abc', 'd"ef"g', 'hij def']
['hello world', 'how are you?']
['Do"Not"Separate']
['Do', 'Separate']
['Do"NotSeparate']
['string', 'with extraneous', 'quotation', 'mark"']
['x', 'y']
['x', 'y']
['', ' key = ', 'x"', 'y', '', '"']
[]
['"', 'just', 'with', 'starting', 'quotation']
['longer quotation', 'with', '"no', 'ending', 'quotation']
['this', 'is', '"', 'not a quotation mark']
Thomas Arendsen Hein
ui: handle leading newlines/spaces/commas in configlist...
r11309 ['ding', 'dong']
Martin Geisler
tests: renamed Python tests to .py
r8449 []
[]
['foo']
['foo']
['foo', 'bar']
['foo', 'bar']
['foo bar']
['foo', 'bar']
Boris Feld
ui: fix ui.configdate for invalid dates...
r32449 ---
(0, 0)
(1113868800, 0)
Martin Geisler
tests: renamed Python tests to .py
r8449 None
True
Sune Foldager
ui: add configint function and tests
r14171 boolinvalid
intinvalid
Boris Feld
ui: fix ui.configdate for invalid dates...
r32449 dateinvalid