##// END OF EJS Templates
py3: use b'%d' to convert int to bytes instead of str()...
py3: use b'%d' to convert int to bytes instead of str() Differential Revision: https://phab.mercurial-scm.org/D3280

File last commit:

r37551:df498549 default
r37599:5b836a4c default
Show More
test-ssh-proto.t
2167 lines | 62.0 KiB | text/troff | Tads3Lexer
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 $ cat > hgrc-sshv2 << EOF
> %include $HGRCPATH
> [experimental]
> sshpeer.advertise-v2 = true
> sshserver.support-v2 = true
> EOF
Helper function to run protocol tests against multiple protocol versions.
This is easier than using #testcases because managing differences between
protocols with inline conditional output is hard to read.
$ debugwireproto() {
> commands=`cat -`
> echo 'testing ssh1'
> echo "${commands}" | hg --verbose debugwireproto --localssh
> echo ""
> echo 'testing ssh2'
> echo "${commands}" | HGRCPATH=$TESTTMP/hgrc-sshv2 hg --verbose debugwireproto --localssh
> }
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 $ cat >> $HGRCPATH << EOF
> [ui]
> ssh = $PYTHON "$TESTDIR/dummyssh"
> [devel]
> debug.peer-request = true
> [extensions]
> sshprotoext = $TESTDIR/sshprotoext.py
> EOF
$ hg init server
$ cd server
$ echo 0 > foo
$ hg -q add foo
$ hg commit -m initial
Gregory Szorc
debugcommands: add debugwireproto command...
r36545
A no-op connection performs a handshake
$ hg debugwireproto --localssh << EOF
> EOF
creating ssh peer from handshake results
Raw peers don't perform any activity
$ hg debugwireproto --localssh --peer raw << EOF
> EOF
using raw connection to peer
$ hg debugwireproto --localssh --peer ssh1 << EOF
> EOF
creating ssh peer for wire protocol version 1
$ hg debugwireproto --localssh --peer ssh2 << EOF
> EOF
creating ssh peer for wire protocol version 2
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Test a normal behaving server, for sanity
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ cd ..
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 $ hg --debug debugpeer ssh://user@dummy/server
Matt Harbison
tests: stabilize ssh tests on Windows...
r36007 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 devel-peer-request: hello
sending hello command
devel-peer-request: between
devel-peer-request: pairs: 81 bytes
sending between command
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 remote: 413
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 remote: 1
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 devel-peer-request: protocaps
devel-peer-request: caps: * bytes (glob)
sending protocaps command
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 url: ssh://user@dummy/server
local: no
pushable: yes
Server should answer the "hello" command in isolation
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg -R server debugwireproto --localssh --peer raw << EOF
> raw
> hello\n
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Gregory Szorc
debugcommands: add debugserve command...
r36544 `hg debugserve --sshstdio` works
$ cd server
$ hg debugserve --sshstdio << EOF
> hello
> EOF
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 413
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: add debugserve command...
r36544
I/O logging works
$ hg debugserve --sshstdio --logiofd 1 << EOF
> hello
> EOF
Gregory Szorc
util: report integer result from write()...
r36649 o> write(4) -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> write(413) -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 413
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: add debugserve command...
r36544 o> flush() -> None
$ hg debugserve --sshstdio --logiofile $TESTTMP/io << EOF
> hello
> EOF
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 413
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: add debugserve command...
r36544
$ cat $TESTTMP/io
Gregory Szorc
util: report integer result from write()...
r36649 o> write(4) -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> write(413) -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: add debugserve command...
r36544 o> flush() -> None
$ cd ..
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 >=0.9.1 clients send a "hello" + "between" for the null range as part of handshake.
Server should reply with capabilities and should send "1\n\n" as a successful
reply with empty response to the "between".
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg -R server debugwireproto --localssh --peer raw << EOF
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
SSH banner is not printed by default, ignored by clients
$ SSHSERVERMODE=banner hg debugpeer ssh://user@dummy/server
url: ssh://user@dummy/server
local: no
pushable: yes
--debug will print the banner
$ SSHSERVERMODE=banner hg --debug debugpeer ssh://user@dummy/server
Matt Harbison
tests: stabilize ssh tests on Windows...
r36007 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 devel-peer-request: hello
sending hello command
devel-peer-request: between
devel-peer-request: pairs: 81 bytes
sending between command
remote: banner: line 0
remote: banner: line 1
remote: banner: line 2
remote: banner: line 3
remote: banner: line 4
remote: banner: line 5
remote: banner: line 6
remote: banner: line 7
remote: banner: line 8
remote: banner: line 9
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 remote: 413
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 remote: 1
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 devel-peer-request: protocaps
devel-peer-request: caps: * bytes (glob)
sending protocaps command
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 url: ssh://user@dummy/server
local: no
pushable: yes
And test the banner with the raw protocol
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ SSHSERVERMODE=banner hg -R server debugwireproto --localssh --peer raw << EOF
> raw
> hello\n
> readline
> readline
> readline
> readline
> readline
> readline
> readline
> readline
> readline
> readline
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 15:
o> banner: line 0\n
o> readline() -> 15:
o> banner: line 1\n
o> readline() -> 15:
o> banner: line 2\n
o> readline() -> 15:
o> banner: line 3\n
o> readline() -> 15:
o> banner: line 4\n
o> readline() -> 15:
o> banner: line 5\n
o> readline() -> 15:
o> banner: line 6\n
o> readline() -> 15:
o> banner: line 7\n
o> readline() -> 15:
o> banner: line 8\n
o> readline() -> 15:
o> banner: line 9\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Gregory Szorc
sshpeer: remove support for connecting to <0.9.1 servers (BC)...
r35958 Connecting to a <0.9.1 server that doesn't support the hello command.
The client should refuse, as we dropped support for connecting to such
servers.
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
$ SSHSERVERMODE=no-hello hg --debug debugpeer ssh://user@dummy/server
Matt Harbison
tests: stabilize ssh tests on Windows...
r36007 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 devel-peer-request: hello
sending hello command
devel-peer-request: between
devel-peer-request: pairs: 81 bytes
sending between command
remote: 0
remote: 1
Gregory Szorc
sshpeer: remove support for connecting to <0.9.1 servers (BC)...
r35958 abort: no suitable response from remote hg!
[255]
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Sending an unknown command to the server results in an empty response to that command
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg -R server debugwireproto --localssh --peer raw << EOF
> raw
> pre-hello\n
> readline
> raw
> hello\n
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(10) -> 10:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> pre-hello\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 o> readline() -> 2:
o> 1\n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
$ hg --config sshpeer.mode=extra-handshake-commands --config sshpeer.handshake-mode=pre-no-args --debug debugpeer ssh://user@dummy/server
Matt Harbison
tests: stabilize ssh tests on Windows...
r36007 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 sending no-args command
devel-peer-request: hello
sending hello command
devel-peer-request: between
devel-peer-request: pairs: 81 bytes
sending between command
remote: 0
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 remote: 413
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 remote: 1
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 devel-peer-request: protocaps
devel-peer-request: caps: * bytes (glob)
sending protocaps command
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 url: ssh://user@dummy/server
local: no
pushable: yes
Send multiple unknown commands before hello
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg -R server debugwireproto --localssh --peer raw << EOF
> raw
> unknown1\n
> readline
> raw
> unknown2\n
> readline
> raw
> unknown3\n
> readline
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown1\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown2\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown3\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
$ hg --config sshpeer.mode=extra-handshake-commands --config sshpeer.handshake-mode=pre-multiple-no-args --debug debugpeer ssh://user@dummy/server
Matt Harbison
tests: stabilize ssh tests on Windows...
r36007 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 sending unknown1 command
sending unknown2 command
sending unknown3 command
devel-peer-request: hello
sending hello command
devel-peer-request: between
devel-peer-request: pairs: 81 bytes
sending between command
remote: 0
remote: 0
remote: 0
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 remote: 413
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 remote: 1
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 devel-peer-request: protocaps
devel-peer-request: caps: * bytes (glob)
sending protocaps command
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 url: ssh://user@dummy/server
local: no
pushable: yes
Send an unknown command before hello that has arguments
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ cd server
$ hg debugwireproto --localssh --peer raw << EOF
> raw
> with-args\n
> foo 13\n
> value for foo\n
> bar 13\n
> value for bar\n
> readline
> readline
> readline
> readline
> readline
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(52) -> 52:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> with-args\n
i> foo 13\n
i> value for foo\n
i> bar 13\n
i> value for bar\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Send an unknown command having an argument that looks numeric
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> unknown\n
> foo 1\n
> 0\n
> readline
> readline
> readline
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(16) -> 16:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown\n
i> foo 1\n
i> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> unknown\n
> foo 1\n
> 1\n
> readline
> readline
> readline
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(16) -> 16:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown\n
i> foo 1\n
i> 1\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
When sending a dict argument value, it is serialized to
"<arg> <item count>" followed by "<key> <len>\n<value>" for each item
in the dict.
Dictionary value for unknown command
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> unknown\n
> dict 3\n
> key1 3\n
> foo\n
> key2 3\n
> bar\n
> key3 3\n
> baz\n
> readline
> readline
> readline
> readline
> readline
> readline
> readline
> readline
> raw
> hello\n
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(48) -> 48:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown\n
i> dict 3\n
i> key1 3\n
i> foo\n
i> key2 3\n
i> bar\n
i> key3 3\n
i> baz\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Incomplete dictionary send
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> unknown\n
> dict 3\n
> key1 3\n
> foo\n
> readline
> readline
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(26) -> 26:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown\n
i> dict 3\n
i> key1 3\n
i> foo\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Incomplete value send
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> unknown\n
> dict 3\n
> key1 3\n
> fo
> readline
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(24) -> 24:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown\n
i> dict 3\n
i> key1 3\n
i> fo
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Send a command line with spaces
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> unknown withspace\n
> readline
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(18) -> 18:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown withspace\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> unknown with multiple spaces\n
> readline
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(29) -> 29:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown with multiple spaces\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> unknown with spaces\n
> key 10\n
> some value\n
> readline
> readline
> readline
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(38) -> 38:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown with spaces\n
i> key 10\n
i> some value\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 Send an unknown command after the "between"
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000unknown
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(105) -> 105:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000unknown
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948
And one with arguments
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> hello\n
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
> readline
> readline
> raw
> unknown\n
> foo 5\n
> \nvalue\n
> bar 3\n
> baz\n
> readline
> readline
> readline
Gregory Szorc
tests: add low-level SSH protocol tests...
r35948 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(31) -> 31:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> unknown\n
i> foo 5\n
i> \n
i> value\n
i> bar 3\n
i> baz\n
o> readline() -> 2:
o> 0\n
o> readline() -> 2:
o> 0\n
o> readline() -> 0:
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994
Gregory Szorc
tests: add tests for sending recognized command before handshake...
r36093 Send a valid command before the handshake
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> heads\n
> readline
> raw
> hello\n
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
> readline
> readline
Gregory Szorc
tests: add tests for sending recognized command before handshake...
r36093 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> heads\n
o> readline() -> 3:
o> 41\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 41:
o> 68986213bd4485ea51533535e3fc9e78007a711f\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 o> readline() -> 2:
o> 1\n
Gregory Szorc
tests: add tests for sending recognized command before handshake...
r36093
And a variation that doesn't send the between command
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> heads\n
> readline
> raw
> hello\n
> readline
> readline
Gregory Szorc
tests: add tests for sending recognized command before handshake...
r36093 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> heads\n
o> readline() -> 3:
o> 41\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 41:
o> 68986213bd4485ea51533535e3fc9e78007a711f\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
Gregory Szorc
tests: add tests for sending recognized command before handshake...
r36093
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 Send an upgrade request to a server that doesn't support that command
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade 2e82ab3f-9ce3-4b4e-8f8c-6fd1c0e9e23a proto=irrelevant1%2Cirrelevant2\n
> readline
> raw
> hello\n
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
> readline
> readline
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(77) -> 77:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade 2e82ab3f-9ce3-4b4e-8f8c-6fd1c0e9e23a proto=irrelevant1%2Cirrelevant2\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
$ cd ..
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994
$ hg --config experimental.sshpeer.advertise-v2=true --debug debugpeer ssh://user@dummy/server
Matt Harbison
tests: stabilize ssh tests on Windows...
r36007 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
devel-peer-request: hello
sending hello command
devel-peer-request: between
devel-peer-request: pairs: 81 bytes
sending between command
remote: 0
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 remote: 413
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 remote: 1
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 devel-peer-request: protocaps
devel-peer-request: caps: * bytes (glob)
sending protocaps command
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 url: ssh://user@dummy/server
local: no
pushable: yes
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 Enable version 2 support on server. We need to do this in hgrc because we can't
use --config with `hg serve --stdio`.
$ cat >> server/.hg/hgrc << EOF
> [experimental]
> sshserver.support-v2 = true
> EOF
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 Send an upgrade request to a server that supports upgrade
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ cd server
Gregory Szorc
tests: store protocol payload in files...
r36386
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade this-is-some-token proto=exp-ssh-v2-0001\n
> hello\n
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
> readline
> EOF
using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(153) -> 153:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade this-is-some-token proto=exp-ssh-v2-0001\n
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 44:
o> upgraded this-is-some-token exp-ssh-v2-0001\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: add debugwireproto command...
r36545
$ cd ..
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 $ hg --config experimental.sshpeer.advertise-v2=true --debug debugpeer ssh://user@dummy/server
Matt Harbison
tests: stabilize ssh tests on Windows...
r36007 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
devel-peer-request: hello
sending hello command
devel-peer-request: between
devel-peer-request: pairs: 81 bytes
sending between command
protocol upgraded to exp-ssh-v2-0001
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 devel-peer-request: protocaps
devel-peer-request: caps: * bytes (glob)
sending protocaps command
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 url: ssh://user@dummy/server
local: no
pushable: yes
Verify the peer has capabilities
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 $ hg --config experimental.sshpeer.advertise-v2=true --debug debugcapabilities ssh://user@dummy/server
Matt Harbison
tests: stabilize ssh tests on Windows...
r36007 running * "*/tests/dummyssh" 'user@dummy' 'hg -R server serve --stdio' (glob) (no-windows !)
running * "*\tests/dummyssh" "user@dummy" "hg -R server serve --stdio" (glob) (windows !)
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 sending upgrade request: * proto=exp-ssh-v2-0001 (glob)
devel-peer-request: hello
sending hello command
devel-peer-request: between
devel-peer-request: pairs: 81 bytes
sending between command
protocol upgraded to exp-ssh-v2-0001
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 devel-peer-request: protocaps
devel-peer-request: caps: * bytes (glob)
sending protocaps command
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 Main capabilities:
batch
branchmap
$USUAL_BUNDLE2_CAPS_SERVER$
changegroupsubset
getbundle
known
lookup
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 protocaps
Gregory Szorc
sshpeer: initial definition and implementation of new SSH protocol...
r35994 pushkey
streamreqs=generaldelta,revlogv1
unbundle=HG10GZ,HG10BZ,HG10UN
unbundlehash
Bundle2 capabilities:
HG20
bookmarks
changegroup
01
02
digests
md5
sha1
sha512
error
abort
unsupportedcontent
pushraced
pushkey
hgtagsfnodes
listkeys
phases
heads
pushkey
remote-changegroup
http
https
Boris Feld
revbranchcache: advertise and use 'rbc' exchange capability...
r36986 rev-branch-cache
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233
Command after upgrade to version 2 is processed
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ cd server
$ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade this-is-some-token proto=exp-ssh-v2-0001\n
> hello\n
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
> readline
> raw
> hello\n
> readline
> readline
> EOF
using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(153) -> 153:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade this-is-some-token proto=exp-ssh-v2-0001\n
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 44:
o> upgraded this-is-some-token exp-ssh-v2-0001\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Gregory Szorc
wireproto: implement capabilities for wire protocol v2...
r37551 o> 397\n
o> readline() -> 397:
o> capabilities: branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233
Multiple upgrades is not allowed
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade this-is-some-token proto=exp-ssh-v2-0001\n
> hello\n
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
> readline
> raw
> upgrade another-token proto=irrelevant\n
> hello\n
> readline
> readavailable
> EOF
using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(153) -> 153:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade this-is-some-token proto=exp-ssh-v2-0001\n
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 44:
o> upgraded this-is-some-token exp-ssh-v2-0001\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(45) -> 45:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade another-token proto=irrelevant\n
i> hello\n
o> readline() -> 1:
o> \n
Yuya Nishihara
debugwireproto: close the write end before consuming all available data...
r36861 o> read(-1) -> 0:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 e> read(-1) -> 42:
e> cannot upgrade protocols multiple times\n
e> -\n
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233
Malformed upgrade request line (not exactly 3 space delimited tokens)
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade\n
> readline
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(8) -> 8:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade token\n
> readline
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(14) -> 14:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade token\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade token foo=bar extra-token\n
> readline
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(34) -> 34:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade token foo=bar extra-token\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233
Upgrade request to unsupported protocol is ignored
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade this-is-some-token proto=unknown1,unknown2\n
> readline
> raw
> hello\n
> readline
> readline
> raw
> between\n
> pairs 81\n
> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
> readline
> readline
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(51) -> 51:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade this-is-some-token proto=unknown1,unknown2\n
o> readline() -> 2:
o> 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> hello\n
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(98) -> 98:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233
Upgrade request must be followed by hello + between
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade token proto=exp-ssh-v2-0001\n
> invalid\n
> readline
> readavailable
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(44) -> 44:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade token proto=exp-ssh-v2-0001\n
i> invalid\n
o> readline() -> 1:
o> \n
Yuya Nishihara
debugwireproto: close the write end before consuming all available data...
r36861 o> read(-1) -> 0:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 e> read(-1) -> 46:
e> malformed handshake protocol: missing hello\n
e> -\n
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade token proto=exp-ssh-v2-0001\n
> hello\n
> invalid\n
> readline
> readavailable
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(50) -> 50:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade token proto=exp-ssh-v2-0001\n
i> hello\n
i> invalid\n
o> readline() -> 1:
o> \n
Yuya Nishihara
debugwireproto: close the write end before consuming all available data...
r36861 o> read(-1) -> 0:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 e> read(-1) -> 48:
e> malformed handshake protocol: missing between\n
e> -\n
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 $ hg debugwireproto --localssh --peer raw << EOF
> raw
> upgrade token proto=exp-ssh-v2-0001\n
> hello\n
> between\n
> invalid\n
> readline
> readavailable
Gregory Szorc
wireprotoserver: handle SSH protocol version 2 upgrade requests...
r36233 > EOF
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 using raw connection to peer
Gregory Szorc
util: report integer result from write()...
r36649 i> write(58) -> 58:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 i> upgrade token proto=exp-ssh-v2-0001\n
i> hello\n
i> between\n
i> invalid\n
o> readline() -> 1:
o> \n
Yuya Nishihara
debugwireproto: close the write end before consuming all available data...
r36861 o> read(-1) -> 0:
Gregory Szorc
debugcommands: add debugwireproto command...
r36545 e> read(-1) -> 49:
e> malformed handshake protocol: missing pairs 81\n
e> -\n
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
Gregory Szorc
wireproto: don't expose legacy commands to version 2 of wire protocol...
r36629 Legacy commands are not exposed to version 2 of protocol
Gregory Szorc
wireproto: mark SSHv2 as a version 1 transport...
r37310 TODO re-enable these once we're back to actually using v2 commands
$ hg --config experimental.sshpeer.advertise-v2=true debugwireproto --localssh << EOF
> command branches
> nodes 0000000000000000000000000000000000000000
> EOF
creating ssh peer from handshake results
sending branches command
response:
Gregory Szorc
wireproto: don't expose legacy commands to version 2 of wire protocol...
r36629
Gregory Szorc
wireproto: mark SSHv2 as a version 1 transport...
r37310 $ hg --config experimental.sshpeer.advertise-v2=true debugwireproto --localssh << EOF
> command changegroup
> roots 0000000000000000000000000000000000000000
> EOF
creating ssh peer from handshake results
sending changegroup command
response:
Gregory Szorc
wireproto: don't expose legacy commands to version 2 of wire protocol...
r36629
Gregory Szorc
wireproto: mark SSHv2 as a version 1 transport...
r37310 $ hg --config experimental.sshpeer.advertise-v2=true debugwireproto --localssh << EOF
> command changegroupsubset
> bases 0000000000000000000000000000000000000000
> heads 0000000000000000000000000000000000000000
> EOF
creating ssh peer from handshake results
sending changegroupsubset command
response:
Gregory Szorc
wireproto: don't expose legacy commands to version 2 of wire protocol...
r36629
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 $ cd ..
Test listkeys for listing namespaces
$ hg init empty
$ cd empty
$ debugwireproto << EOF
> command listkeys
> namespace namespaces
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(13) -> 13:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 10\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(10) -> 10: namespaces
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 30\n
o> bufferedread(30) -> 30:
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bookmarks\t\n
o> namespaces\t\n
o> phases\t
response: b'bookmarks\t\nnamespaces\t\nphases\t'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> read(1) -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(13) -> 13:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 10\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(10) -> 10: namespaces
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 30\n
o> bufferedread(30) -> 30:
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bookmarks\t\n
o> namespaces\t\n
o> phases\t
response: b'bookmarks\t\nnamespaces\t\nphases\t'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
$ cd ..
Test listkeys for bookmarks
$ hg init bookmarkrepo
$ cd bookmarkrepo
$ echo 0 > foo
$ hg add foo
$ hg -q commit -m initial
$ echo 1 > foo
$ hg commit -m second
With no bookmarks set
$ debugwireproto << EOF
> command listkeys
> namespace bookmarks
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 9\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9: bookmarks
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 2:
o> 0\n
Gregory Szorc
stringutil: add function to pretty print an object...
r37316 response: b''
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> read(1) -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 9\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9: bookmarks
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 2:
o> 0\n
Gregory Szorc
stringutil: add function to pretty print an object...
r37316 response: b''
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
With a single bookmark set
$ hg book -r 0 bookA
$ debugwireproto << EOF
> command listkeys
> namespace bookmarks
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 9\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9: bookmarks
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 46\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bufferedread(46) -> 46: bookA\t68986213bd4485ea51533535e3fc9e78007a711f
response: b'bookA\t68986213bd4485ea51533535e3fc9e78007a711f'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> read(1) -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 9\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9: bookmarks
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 46\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bufferedread(46) -> 46: bookA\t68986213bd4485ea51533535e3fc9e78007a711f
response: b'bookA\t68986213bd4485ea51533535e3fc9e78007a711f'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
With multiple bookmarks set
$ hg book -r 1 bookB
$ debugwireproto << EOF
> command listkeys
> namespace bookmarks
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 9\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9: bookmarks
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 93\n
o> bufferedread(93) -> 93:
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bookA\t68986213bd4485ea51533535e3fc9e78007a711f\n
o> bookB\t1880f3755e2e52e3199e0ee5638128b08642f34d
response: b'bookA\t68986213bd4485ea51533535e3fc9e78007a711f\nbookB\t1880f3755e2e52e3199e0ee5638128b08642f34d'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> read(1) -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 9\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9: bookmarks
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 93\n
o> bufferedread(93) -> 93:
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bookA\t68986213bd4485ea51533535e3fc9e78007a711f\n
o> bookB\t1880f3755e2e52e3199e0ee5638128b08642f34d
response: b'bookA\t68986213bd4485ea51533535e3fc9e78007a711f\nbookB\t1880f3755e2e52e3199e0ee5638128b08642f34d'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 Test pushkey for bookmarks
$ debugwireproto << EOF
> command pushkey
> namespace bookmarks
> key remote
> old
> new 68986213bd4485ea51533535e3fc9e78007a711f
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending pushkey command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(8) -> 8:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> pushkey\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> key 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: remote
i> write(12) -> 12:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> namespace 9\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9: bookmarks
i> write(7) -> 7:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> new 40\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(40) -> 40: 68986213bd4485ea51533535e3fc9e78007a711f
i> write(6) -> 6:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> old 0\n
i> flush() -> None
o> bufferedreadline() -> 2:
o> 2\n
o> bufferedread(2) -> 2:
o> 1\n
Gregory Szorc
stringutil: add function to pretty print an object...
r37316 response: b'1\n'
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 o> read(1) -> 1:
o> \n
sending pushkey command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(8) -> 8:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> pushkey\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> key 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: remote
i> write(12) -> 12:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> namespace 9\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9: bookmarks
i> write(7) -> 7:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> new 40\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(40) -> 40: 68986213bd4485ea51533535e3fc9e78007a711f
i> write(6) -> 6:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> old 0\n
i> flush() -> None
o> bufferedreadline() -> 2:
o> 2\n
o> bufferedread(2) -> 2:
o> 1\n
Gregory Szorc
stringutil: add function to pretty print an object...
r37316 response: b'1\n'
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549
$ hg bookmarks
bookA 0:68986213bd44
bookB 1:1880f3755e2e
remote 0:68986213bd44
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 $ cd ..
Test listkeys for phases
$ hg init phasesrepo
$ cd phasesrepo
Phases on empty repo
$ debugwireproto << EOF
> command listkeys
> namespace phases
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 15\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bufferedread(15) -> 15: publishing\tTrue
response: b'publishing\tTrue'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> read(1) -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 15\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bufferedread(15) -> 15: publishing\tTrue
response: b'publishing\tTrue'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
Create some commits
$ echo 0 > foo
$ hg add foo
$ hg -q commit -m initial
$ hg phase --public
$ echo 1 > foo
$ hg commit -m 'head 1 commit 1'
$ echo 2 > foo
$ hg commit -m 'head 1 commit 2'
$ hg -q up 0
$ echo 1a > foo
$ hg commit -m 'head 2 commit 1'
created new head
$ echo 2a > foo
$ hg commit -m 'head 2 commit 2'
Two draft heads
$ debugwireproto << EOF
> command listkeys
> namespace phases
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 4:
o> 101\n
o> bufferedread(101) -> 101:
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> 20b8a89289d80036e6c4e87c2083e3bea1586637\t1\n
o> c4750011d906c18ea2f0527419cbc1a544435150\t1\n
o> publishing\tTrue
response: b'20b8a89289d80036e6c4e87c2083e3bea1586637\t1\nc4750011d906c18ea2f0527419cbc1a544435150\t1\npublishing\tTrue'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> read(1) -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 4:
o> 101\n
o> bufferedread(101) -> 101:
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> 20b8a89289d80036e6c4e87c2083e3bea1586637\t1\n
o> c4750011d906c18ea2f0527419cbc1a544435150\t1\n
o> publishing\tTrue
response: b'20b8a89289d80036e6c4e87c2083e3bea1586637\t1\nc4750011d906c18ea2f0527419cbc1a544435150\t1\npublishing\tTrue'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
Single draft head
$ hg phase --public -r 2
$ debugwireproto << EOF
> command listkeys
> namespace phases
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 58\n
o> bufferedread(58) -> 58:
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> c4750011d906c18ea2f0527419cbc1a544435150\t1\n
o> publishing\tTrue
response: b'c4750011d906c18ea2f0527419cbc1a544435150\t1\npublishing\tTrue'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> read(1) -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 58\n
o> bufferedread(58) -> 58:
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> c4750011d906c18ea2f0527419cbc1a544435150\t1\n
o> publishing\tTrue
response: b'c4750011d906c18ea2f0527419cbc1a544435150\t1\npublishing\tTrue'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
All public heads
$ hg phase --public -r 4
$ debugwireproto << EOF
> command listkeys
> namespace phases
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 15\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bufferedread(15) -> 15: publishing\tTrue
response: b'publishing\tTrue'
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 o> read(1) -> 1:
o> \n
sending listkeys command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(9) -> 9:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> listkeys\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(12) -> 12:
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
Gregory Szorc
debugcommands: allow sending of simple commands with debugwireproto...
r36547 i> flush() -> None
o> bufferedreadline() -> 3:
o> 15\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> bufferedread(15) -> 15: publishing\tTrue
response: b'publishing\tTrue'
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 Setting public phase via pushkey
$ hg phase --draft --force -r .
$ debugwireproto << EOF
> command pushkey
> namespace phases
> key 7127240a084fd9dc86fe8d1f98e26229161ec82b
> old 1
> new 0
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending pushkey command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(8) -> 8:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> pushkey\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(7) -> 7:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> key 40\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(40) -> 40: 7127240a084fd9dc86fe8d1f98e26229161ec82b
i> write(12) -> 12:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
i> write(6) -> 6:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> new 1\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(1) -> 1: 0
i> write(6) -> 6:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> old 1\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(1) -> 1: 1
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> flush() -> None
o> bufferedreadline() -> 2:
o> 2\n
o> bufferedread(2) -> 2:
o> 1\n
Gregory Szorc
stringutil: add function to pretty print an object...
r37316 response: b'1\n'
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 o> read(1) -> 1:
o> \n
sending pushkey command
Gregory Szorc
util: report integer result from write()...
r36649 i> write(8) -> 8:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> pushkey\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(7) -> 7:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> key 40\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(40) -> 40: 7127240a084fd9dc86fe8d1f98e26229161ec82b
i> write(12) -> 12:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> namespace 6\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6: phases
i> write(6) -> 6:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> new 1\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(1) -> 1: 0
i> write(6) -> 6:
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> old 1\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(1) -> 1: 1
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549 i> flush() -> None
o> bufferedreadline() -> 2:
o> 2\n
o> bufferedread(2) -> 2:
o> 1\n
Gregory Szorc
stringutil: add function to pretty print an object...
r37316 response: b'1\n'
Gregory Szorc
tests: add wire protocol tests for pushkey...
r36549
$ hg phase .
4: public
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 $ cd ..
Test batching of requests
$ hg init batching
$ cd batching
$ echo 0 > foo
$ hg add foo
$ hg -q commit -m initial
$ hg phase --public
$ echo 1 > foo
$ hg commit -m 'commit 1'
$ hg -q up 0
$ echo 2 > foo
$ hg commit -m 'commit 2'
created new head
$ hg book -r 1 bookA
$ hg book -r 2 bookB
$ debugwireproto << EOF
> batchbegin
> command heads
> command listkeys
> namespace bookmarks
> command listkeys
> namespace phases
> batchsubmit
> EOF
testing ssh1
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(104) -> 104:
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 413\n
o> readline() -> 413:
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 o> readline() -> 2:
o> 1\n
o> readline() -> 1:
o> \n
sending batch with 3 sub-commands
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> batch\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(4) -> 4:
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> * 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(8) -> 8:
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> cmds 61\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(61) -> 61: heads ;listkeys namespace=bookmarks;listkeys namespace=phases
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> flush() -> None
o> bufferedreadline() -> 4:
o> 278\n
o> bufferedread(278) -> 278:
o> bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> ;bookA\t4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n
o> bookB\tbfebe6bd38eebc6f8202e419c1171268987ea6a6;4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\t1\n
o> bfebe6bd38eebc6f8202e419c1171268987ea6a6\t1\n
o> publishing\tTrue
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 response #0: bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 response #1: bookA\t4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\nbookB\tbfebe6bd38eebc6f8202e419c1171268987ea6a6
response #2: 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\t1\nbfebe6bd38eebc6f8202e419c1171268987ea6a6\t1\npublishing\tTrue
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548
testing ssh2
creating ssh peer from handshake results
Gregory Szorc
util: report integer result from write()...
r36649 i> write(171) -> 171:
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> upgrade * proto=exp-ssh-v2-0001\n (glob)
i> hello\n
i> between\n
i> pairs 81\n
i> 0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
i> flush() -> None
o> readline() -> 62:
o> upgraded * exp-ssh-v2-0001\n (glob)
o> readline() -> 4:
Joerg Sonnenberger
wireproto: provide accessors for client capabilities...
r37411 o> 412\n
Joerg Sonnenberger
wireproto: send server capabilities in canonical order...
r37431 o> read(412) -> 412: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS_SERVER$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1 unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 o> read(1) -> 1:
o> \n
sending batch with 3 sub-commands
Gregory Szorc
util: report integer result from write()...
r36649 i> write(6) -> 6:
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> batch\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(4) -> 4:
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> * 0\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(8) -> 8:
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> cmds 61\n
Gregory Szorc
util: report integer result from write()...
r36649 i> write(61) -> 61: heads ;listkeys namespace=bookmarks;listkeys namespace=phases
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 i> flush() -> None
o> bufferedreadline() -> 4:
o> 278\n
o> bufferedread(278) -> 278:
o> bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 o> ;bookA\t4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n
o> bookB\tbfebe6bd38eebc6f8202e419c1171268987ea6a6;4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\t1\n
o> bfebe6bd38eebc6f8202e419c1171268987ea6a6\t1\n
o> publishing\tTrue
Gregory Szorc
debugcommands: support for sending "batch" requests...
r36548 response #0: bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n
Yuya Nishihara
stringutil: drop escapedata() in favor of escapestr()...
r37338 response #1: bookA\t4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\nbookB\tbfebe6bd38eebc6f8202e419c1171268987ea6a6
response #2: 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\t1\nbfebe6bd38eebc6f8202e419c1171268987ea6a6\t1\npublishing\tTrue