annotate tests/test-strict.t @ 38855:7848f284b211

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
author Martin von Zweigbergk <martinvonz@google.com>
date Sun, 29 Apr 2018 10:07:40 -0700
parents 5199c5b6fd29
children 9c9e0b4b2ca7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
1 $ hg init
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
2
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
3 $ echo a > a
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
4 $ hg ci -Ama
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
5 adding a
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
6
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
7 $ hg an a
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
8 0: a
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
9
16591
46e9ed223d2c commands: parse ui.strict config item as bool
Yuya Nishihara <yuya@tcha.org>
parents: 15862
diff changeset
10 $ hg --config ui.strict=False an a
46e9ed223d2c commands: parse ui.strict config item as bool
Yuya Nishihara <yuya@tcha.org>
parents: 15862
diff changeset
11 0: a
46e9ed223d2c commands: parse ui.strict config item as bool
Yuya Nishihara <yuya@tcha.org>
parents: 15862
diff changeset
12
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
13 $ echo "[ui]" >> $HGRCPATH
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
14 $ echo "strict=True" >> $HGRCPATH
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
15
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
16 $ hg an a
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
17 hg: unknown command 'an'
38787
5199c5b6fd29 dispatch: don't show list of commands on bogus command
Martin von Zweigbergk <martinvonz@google.com>
parents: 29974
diff changeset
18 (use 'hg help' for a list of commands)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12097
diff changeset
19 [255]
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
20 $ hg annotate a
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
21 0: a
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
22
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
23 should succeed - up is an alias, not an abbreviation
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
24
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
25 $ hg up
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
26 0 files updated, 0 files merged, 0 files removed, 0 files unresolved