Mercurial > hg
annotate contrib/base-revsets.txt @ 37295:45b39c69fae0
wireproto: separate commands tables for version 1 and 2 commands
We can't easily reuse existing command handlers for version 2
commands because the response types will be different. e.g. many
commands return nodes encoded as hex. Our new wire protocol is
binary safe, so we'll wish to encode nodes as binary.
We /could/ teach each command handler to look at the protocol
handler and change behavior based on the version in use. However,
this would make logic a bit unwieldy over time and would make
it harder to design a unified protocol handler interface. I think
it's better to create a clean break between version 1 and version 2
of commands on the server.
What I imagine happening is we will have separate @wireprotocommand
functions for each protocol generation. Those functions will parse the
request, dispatch to a common function to process it, then generate
the response in its own, transport-specific manner.
This commit establishes a separate table for tracking version 1
commands from version 2 commands. The HTTP server pieces have been
updated to use this new table.
Most commands are marked as both version 1 and version 2, so there is
little practical impact to this change.
A side-effect of this change is we now rely on transport registration
in wireprototypes.TRANSPORTS and certain properties of the protocol
interface. So a test had to be updated to conform.
Differential Revision: https://phab.mercurial-scm.org/D2982
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 28 Mar 2018 10:40:41 -0700 |
parents | 67a2192dcb64 |
children | 70a4289896b0 |
rev | line source |
---|---|
25608
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
1 # Base Revsets to be used with revsetbenchmarks.py script |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
2 # |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
3 # The goal of this file is to gather a limited amount of revsets that allow a |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
4 # good coverage of the internal revsets mechanisms. Revsets included should not |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
5 # be selected for their individual implementation, but for what they reveal of |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
6 # the internal implementation of smartsets classes (and their interactions). |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
7 # |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
8 # Use and update this file when you change internal implementation of these |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
9 # smartsets classes. Please include a comment explaining what each of your |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
10 # addition is testing. Also check if your changes to the smartset class makes |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
11 # some of the tests inadequate and replace them with a new one testing the same |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
12 # behavior. |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
13 # |
25609
67a2192dcb64
contrib: introduce an all-revsets.txt file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25608
diff
changeset
|
14 # If you want to benchmark revsets predicate itself, check 'all-revsets.txt'. |
67a2192dcb64
contrib: introduce an all-revsets.txt file
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25608
diff
changeset
|
15 # |
25608
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
16 # The current content of this file is currently likely not reaching this goal |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
17 # entirely, feel free, to audit its content and comment on each revset to |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
18 # highlight what internal mechanisms they test. |
2fea23d035d8
contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25545
diff
changeset
|
19 |
20777
77318d3c3b24
benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20754
diff
changeset
|
20 all() |
20744
9907b3f79ac2
contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
21 draft() |
20777
77318d3c3b24
benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20754
diff
changeset
|
22 ::tip |
20744
9907b3f79ac2
contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
23 draft() and ::tip |
21285
7078ce067367
revsetbenchmark: add `::tip and draft()` to the canonical list
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21204
diff
changeset
|
24 ::tip and draft() |
20777
77318d3c3b24
benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20754
diff
changeset
|
25 0::tip |
20744
9907b3f79ac2
contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
26 roots(0::tip) |
9907b3f79ac2
contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
27 author(lmoscovicz) |
20777
77318d3c3b24
benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20754
diff
changeset
|
28 author(mpm) |
20744
9907b3f79ac2
contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff
changeset
|
29 author(lmoscovicz) or author(mpm) |
21295
883e268cb860
revsetbenchmark: add `author(mpm) or author(lmoscovicz)` to the canonical list
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
21285
diff
changeset
|
30 author(mpm) or author(lmoscovicz) |
20777
77318d3c3b24
benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20754
diff
changeset
|
31 tip:0 |
77318d3c3b24
benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20754
diff
changeset
|
32 0:: |
22556
480a24ad9f77
revsetbenchmark: allow comments ('#' prefix) in the revset input
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22458
diff
changeset
|
33 # those two `roots(...)` inputs are close to what phase movement use. |
20894
04e1596d5dbd
revset: improve _descendants performance
Durham Goode <durham@fb.com>
parents:
20861
diff
changeset
|
34 roots((tip~100::) - (tip~100::tip)) |
22556
480a24ad9f77
revsetbenchmark: allow comments ('#' prefix) in the revset input
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22458
diff
changeset
|
35 roots((0::) - (0::tip)) |
24923
e5f166961123
revset: narrow the subset using smartset operation in roots()
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22557
diff
changeset
|
36 42:68 and roots(42:tip) |
20861
c2a81aa19980
revsetbenchmark: add entry for ::rev::
Gregory Szorc <gregory.szorc@gmail.com>
parents:
20777
diff
changeset
|
37 ::p1(p1(tip)):: |
21204
1d7a2771aa36
revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20894
diff
changeset
|
38 public() |
1d7a2771aa36
revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20894
diff
changeset
|
39 :10000 and public() |
1d7a2771aa36
revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20894
diff
changeset
|
40 draft() |
1d7a2771aa36
revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
20894
diff
changeset
|
41 :10000 and draft() |
21939
f486001f9d6f
revset: optimize baseset.__sub__ (issue4313)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
21546
diff
changeset
|
42 roots((0:tip)::) |
22312
8b980fbbd6dc
revsetbenchmark: add revset with lazyset subtraction
Gregory Szorc <gregory.szorc@gmail.com>
parents:
21939
diff
changeset
|
43 (not public() - obsolete()) |
22451
186fd06283b4
revset: lower weight for _intlist function
Durham Goode <durham@fb.com>
parents:
22450
diff
changeset
|
44 (_intlist('20000\x0020001')) and merge() |
22450
95af98616aa7
revset: make parents() O(number of parents)
Durham Goode <durham@fb.com>
parents:
22449
diff
changeset
|
45 parents(20000) |
22449
da05fe01170b
revset: make descendants() lazier
Durham Goode <durham@fb.com>
parents:
22312
diff
changeset
|
46 (20000::) - (20000) |
22557
ace8320156ef
revsetbenchmark: add a rebase-related revset to the benchmark list
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22556
diff
changeset
|
47 # The one below is used by rebase |
ace8320156ef
revsetbenchmark: add a rebase-related revset to the benchmark list
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22556
diff
changeset
|
48 (children(ancestor(tip~5, tip)) and ::(tip~5)):: |