##// END OF EJS Templates
httppeer: implement command executor for version 2 peer...
httppeer: implement command executor for version 2 peer Now that we have a new API for issuing commands which is compatible with wire protocol version 2, we can start using it with wire protocol version 2. This commit replaces our hacky implementation of _call() with something a bit more robust based on the new command executor interface. We now have proper support for issuing multiple commands per HTTP request. Each HTTP request maintains its own client reactor. The implementation is similar to the one in the legacy wire protocol. We use a ThreadPoolExecutor for spinning up a thread to read the HTTP response in the background. This allows responses to resolve in any order. While not implemented on the server yet, a client could use concurrent.futures.as_completed() with a collection of futures and handle responses as they arrive from the server. The return value from issued commands is still a simple list of raw or decoded CBOR data. This is still super hacky. We will want a rich data type for representing command responses. But at least this commit gets us one step closer to a proper peer implementation. Differential Revision: https://phab.mercurial-scm.org/D3297

File last commit:

r34075:7bbc4e11 default
r37669:950294e2 default
Show More
test-revset-dirstate-parents.t
66 lines | 880 B | text/troff | Tads3Lexer
/ tests / test-revset-dirstate-parents.t
Kevin Bullock
revsets: let p1() and p2() return parents of working dir...
r12928 $ HGENCODING=utf-8
$ export HGENCODING
$ try() {
> hg debugrevspec --debug $@
> }
$ log() {
> hg log --template '{rev}\n' -r "$1"
> }
$ hg init repo
$ cd repo
$ try 'p1()'
Patrick Mezard
debugrevspec: pretty print output...
r16218 (func
Yuya Nishihara
parser: stabilize output of prettyformat() by using byte-safe repr()...
r34075 (symbol 'p1')
Patrick Mezard
debugrevspec: pretty print output...
r16218 None)
Yuya Nishihara
debugrevspec: show nesting structure of smartsets if verbose...
r24458 * set:
<baseset []>
Kevin Bullock
revsets: let p1() and p2() return parents of working dir...
r12928 $ try 'p2()'
Patrick Mezard
debugrevspec: pretty print output...
r16218 (func
Yuya Nishihara
parser: stabilize output of prettyformat() by using byte-safe repr()...
r34075 (symbol 'p2')
Patrick Mezard
debugrevspec: pretty print output...
r16218 None)
Yuya Nishihara
debugrevspec: show nesting structure of smartsets if verbose...
r24458 * set:
<baseset []>
Patrick Mezard
revset: fix p1, p2 and parents in dirstate case (a5f7f1e9340e)...
r12935 $ try 'parents()'
Patrick Mezard
debugrevspec: pretty print output...
r16218 (func
Yuya Nishihara
parser: stabilize output of prettyformat() by using byte-safe repr()...
r34075 (symbol 'parents')
Patrick Mezard
debugrevspec: pretty print output...
r16218 None)
Yuya Nishihara
debugrevspec: show nesting structure of smartsets if verbose...
r24458 * set:
<baseset+ []>
Kevin Bullock
revsets: let p1() and p2() return parents of working dir...
r12928
null revision
$ log 'p1()'
$ log 'p2()'
Kevin Bullock
revsets: let parents() return parents of working dir...
r12929 $ log 'parents()'
Kevin Bullock
revsets: let p1() and p2() return parents of working dir...
r12928
working dir with a single parent
$ echo a > a
$ hg ci -Aqm0
$ log 'p1()'
0
Patrick Mezard
revset: fix p1, p2 and parents in dirstate case (a5f7f1e9340e)...
r12935 $ log 'tag() and p1()'
Kevin Bullock
revsets: let p1() and p2() return parents of working dir...
r12928 $ log 'p2()'
Kevin Bullock
revsets: let parents() return parents of working dir...
r12929 $ log 'parents()'
0
Patrick Mezard
revset: fix p1, p2 and parents in dirstate case (a5f7f1e9340e)...
r12935 $ log 'tag() and parents()'
Kevin Bullock
revsets: let p1() and p2() return parents of working dir...
r12928
merge in progress
$ echo b > b
$ hg ci -Aqm1
$ hg up -q 0
$ echo c > c
$ hg ci -Aqm2
$ hg merge -q
$ log 'p1()'
2
$ log 'p2()'
1
Patrick Mezard
revset: fix p1, p2 and parents in dirstate case (a5f7f1e9340e)...
r12935 $ log 'tag() and p2()'
Kevin Bullock
revsets: let parents() return parents of working dir...
r12929 $ log 'parents()'
Patrick Mezard
revset: fix p1, p2 and parents in dirstate case (a5f7f1e9340e)...
r12935 1
Kevin Bullock
revsets: let parents() return parents of working dir...
r12929 2
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..