tests/test-ssh-proto-unbundle.t
changeset 48526 04688c51f81f
parent 46880 8bf21b3869cd
child 48646 77f8f8caf859
equal deleted inserted replaced
48525:d6c53b40b078 48526:04688c51f81f
     1 persistent-nodemap is not enabled by default. It is not relevant for this test so disable it.
     1 persistent-nodemap is not enabled by default. It is not relevant for this test so disable it.
     2 
     2 
     3   $ cat << EOF >> $HGRCPATH
     3   $ cat << EOF >> $HGRCPATH
     4   > [format]
     4   > [format]
     5   > use-persistent-nodemap = no
     5   > use-persistent-nodemap = no
     6   > EOF
       
     7 
       
     8   $ cat > hgrc-sshv2 << EOF
       
     9   > %include $HGRCPATH
       
    10   > [experimental]
       
    11   > sshpeer.advertise-v2 = true
       
    12   > sshserver.support-v2 = true
       
    13   > EOF
     6   > EOF
    14 
     7 
    15   $ debugwireproto() {
     8   $ debugwireproto() {
    16   >   commands=`cat -`
     9   >   commands=`cat -`
    17   >   echo 'testing ssh1'
    10   >   echo 'testing ssh1'
    18   >   tip=`hg log -r tip -T '{node}'`
    11   >   tip=`hg log -r tip -T '{node}'`
    19   >   echo "${commands}" | hg --verbose debugwireproto --localssh --noreadstderr
    12   >   echo "${commands}" | hg --verbose debugwireproto --localssh --noreadstderr
    20   >   if [ -n "$1" ]; then
    13   >   if [ -n "$1" ]; then
    21   >       hg --config extensions.strip= strip --no-backup -r "all() - ::${tip}"
    14   >       hg --config extensions.strip= strip --no-backup -r "all() - ::${tip}"
    22   >   fi
    15   >   fi
    23   >   echo ""
       
    24   >   echo 'testing ssh2'
       
    25   >   echo "${commands}" | HGRCPATH=$TESTTMP/hgrc-sshv2 hg --verbose debugwireproto --localssh --noreadstderr
       
    26   >   if [ -n "$1" ]; then
       
    27   >       hg --config extensions.strip= strip --no-backup -r "all() - ::${tip}"
       
    28   >   fi
       
    29   > }
    16   > }
    30 
    17 
    31 Generate some bundle files
    18 Generate some bundle files
    32 
    19 
    33   $ hg init repo
    20   $ hg init repo
    67   o> readline() -> 444:
    54   o> readline() -> 444:
    68   o>     capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
    55   o>     capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
    69   o> readline() -> 2:
    56   o> readline() -> 2:
    70   o>     1\n
    57   o>     1\n
    71   o> readline() -> 1:
    58   o> readline() -> 1:
    72   o>     \n
       
    73   sending unbundle command
       
    74   i> write(9) -> 9:
       
    75   i>     unbundle\n
       
    76   i> write(9) -> 9:
       
    77   i>     heads 10\n
       
    78   i> write(10) -> 10: 666f726365
       
    79   i> flush() -> None
       
    80   o> readline() -> 2:
       
    81   o>     0\n
       
    82   i> write(4) -> 4:
       
    83   i>     426\n
       
    84   i> write(426) -> 426:
       
    85   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
    86   i>     test\n
       
    87   i>     0 0\n
       
    88   i>     foo\n
       
    89   i>     \n
       
    90   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
    91   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
    92   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
    93   i> write(2) -> 2:
       
    94   i>     0\n
       
    95   i> flush() -> None
       
    96   o> readline() -> 2:
       
    97   o>     0\n
       
    98   o> readline() -> 2:
       
    99   o>     1\n
       
   100   o> read(1) -> 1: 0
       
   101   result: 0
       
   102   remote output: 
       
   103   e> read(-1) -> 115:
       
   104   e>     abort: incompatible Mercurial client; bundle2 required\n
       
   105   e>     (see https://www.mercurial-scm.org/wiki/IncompatibleClient)\n
       
   106   
       
   107   testing ssh2
       
   108   creating ssh peer from handshake results
       
   109   i> write(171) -> 171:
       
   110   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
   111   i>     hello\n
       
   112   i>     between\n
       
   113   i>     pairs 81\n
       
   114   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
   115   i> flush() -> None
       
   116   o> readline() -> 62:
       
   117   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
   118   o> readline() -> 4:
       
   119   o>     443\n
       
   120   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
   121   o> read(1) -> 1:
       
   122   o>     \n
    59   o>     \n
   123   sending unbundle command
    60   sending unbundle command
   124   i> write(9) -> 9:
    61   i> write(9) -> 9:
   125   i>     unbundle\n
    62   i>     unbundle\n
   126   i> write(9) -> 9:
    63   i> write(9) -> 9:
   285   e>     adding file changes\n
   222   e>     adding file changes\n
   286   e>     ui.write 1 line\n
   223   e>     ui.write 1 line\n
   287   e>     transaction abort!\n
   224   e>     transaction abort!\n
   288   e>     rollback completed\n
   225   e>     rollback completed\n
   289   e>     abort: pretxnchangegroup.fail hook failed\n
   226   e>     abort: pretxnchangegroup.fail hook failed\n
   290   
       
   291   testing ssh2
       
   292   creating ssh peer from handshake results
       
   293   i> write(171) -> 171:
       
   294   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
   295   i>     hello\n
       
   296   i>     between\n
       
   297   i>     pairs 81\n
       
   298   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
   299   i> flush() -> None
       
   300   o> readline() -> 62:
       
   301   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
   302   o> readline() -> 4:
       
   303   o>     443\n
       
   304   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
   305   o> read(1) -> 1:
       
   306   o>     \n
       
   307   sending unbundle command
       
   308   i> write(9) -> 9:
       
   309   i>     unbundle\n
       
   310   i> write(9) -> 9:
       
   311   i>     heads 10\n
       
   312   i> write(10) -> 10: 666f726365
       
   313   i> flush() -> None
       
   314   o> readline() -> 2:
       
   315   o>     0\n
       
   316   i> write(4) -> 4:
       
   317   i>     426\n
       
   318   i> write(426) -> 426:
       
   319   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
   320   i>     test\n
       
   321   i>     0 0\n
       
   322   i>     foo\n
       
   323   i>     \n
       
   324   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
   325   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
   326   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
   327   i> write(2) -> 2:
       
   328   i>     0\n
       
   329   i> flush() -> None
       
   330   o> readline() -> 2:
       
   331   o>     0\n
       
   332   o> readline() -> 2:
       
   333   o>     1\n
       
   334   o> read(1) -> 1: 0
       
   335   result: 0
       
   336   remote output: 
       
   337   e> read(-1) -> 151:
       
   338   e>     adding changesets\n
       
   339   e>     adding manifests\n
       
   340   e>     adding file changes\n
       
   341   e>     ui.write 1 line\n
       
   342   e>     transaction abort!\n
       
   343   e>     rollback completed\n
       
   344   e>     abort: pretxnchangegroup.fail hook failed\n
       
   345 
   227 
   346 And a variation that writes multiple lines using ui.write
   228 And a variation that writes multiple lines using ui.write
   347 
   229 
   348   $ cat > .hg/hgrc << EOF
   230   $ cat > .hg/hgrc << EOF
   349   > [hooks]
   231   > [hooks]
   410   e>     ui.write 2 lines 1\n
   292   e>     ui.write 2 lines 1\n
   411   e>     ui.write 2 lines 2\n
   293   e>     ui.write 2 lines 2\n
   412   e>     transaction abort!\n
   294   e>     transaction abort!\n
   413   e>     rollback completed\n
   295   e>     rollback completed\n
   414   e>     abort: pretxnchangegroup.fail hook failed\n
   296   e>     abort: pretxnchangegroup.fail hook failed\n
   415   
       
   416   testing ssh2
       
   417   creating ssh peer from handshake results
       
   418   i> write(171) -> 171:
       
   419   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
   420   i>     hello\n
       
   421   i>     between\n
       
   422   i>     pairs 81\n
       
   423   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
   424   i> flush() -> None
       
   425   o> readline() -> 62:
       
   426   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
   427   o> readline() -> 4:
       
   428   o>     443\n
       
   429   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
   430   o> read(1) -> 1:
       
   431   o>     \n
       
   432   sending unbundle command
       
   433   i> write(9) -> 9:
       
   434   i>     unbundle\n
       
   435   i> write(9) -> 9:
       
   436   i>     heads 10\n
       
   437   i> write(10) -> 10: 666f726365
       
   438   i> flush() -> None
       
   439   o> readline() -> 2:
       
   440   o>     0\n
       
   441   i> write(4) -> 4:
       
   442   i>     426\n
       
   443   i> write(426) -> 426:
       
   444   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
   445   i>     test\n
       
   446   i>     0 0\n
       
   447   i>     foo\n
       
   448   i>     \n
       
   449   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
   450   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
   451   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
   452   i> write(2) -> 2:
       
   453   i>     0\n
       
   454   i> flush() -> None
       
   455   o> readline() -> 2:
       
   456   o>     0\n
       
   457   o> readline() -> 2:
       
   458   o>     1\n
       
   459   o> read(1) -> 1: 0
       
   460   result: 0
       
   461   remote output: 
       
   462   e> read(-1) -> 173:
       
   463   e>     adding changesets\n
       
   464   e>     adding manifests\n
       
   465   e>     adding file changes\n
       
   466   e>     ui.write 2 lines 1\n
       
   467   e>     ui.write 2 lines 2\n
       
   468   e>     transaction abort!\n
       
   469   e>     rollback completed\n
       
   470   e>     abort: pretxnchangegroup.fail hook failed\n
       
   471 
   297 
   472 And a variation that does a ui.flush() after writing output
   298 And a variation that does a ui.flush() after writing output
   473 
   299 
   474   $ cat > .hg/hgrc << EOF
   300   $ cat > .hg/hgrc << EOF
   475   > [hooks]
   301   > [hooks]
   535   e>     adding file changes\n
   361   e>     adding file changes\n
   536   e>     ui.write 1 line flush\n
   362   e>     ui.write 1 line flush\n
   537   e>     transaction abort!\n
   363   e>     transaction abort!\n
   538   e>     rollback completed\n
   364   e>     rollback completed\n
   539   e>     abort: pretxnchangegroup.fail hook failed\n
   365   e>     abort: pretxnchangegroup.fail hook failed\n
   540   
       
   541   testing ssh2
       
   542   creating ssh peer from handshake results
       
   543   i> write(171) -> 171:
       
   544   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
   545   i>     hello\n
       
   546   i>     between\n
       
   547   i>     pairs 81\n
       
   548   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
   549   i> flush() -> None
       
   550   o> readline() -> 62:
       
   551   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
   552   o> readline() -> 4:
       
   553   o>     443\n
       
   554   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
   555   o> read(1) -> 1:
       
   556   o>     \n
       
   557   sending unbundle command
       
   558   i> write(9) -> 9:
       
   559   i>     unbundle\n
       
   560   i> write(9) -> 9:
       
   561   i>     heads 10\n
       
   562   i> write(10) -> 10: 666f726365
       
   563   i> flush() -> None
       
   564   o> readline() -> 2:
       
   565   o>     0\n
       
   566   i> write(4) -> 4:
       
   567   i>     426\n
       
   568   i> write(426) -> 426:
       
   569   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
   570   i>     test\n
       
   571   i>     0 0\n
       
   572   i>     foo\n
       
   573   i>     \n
       
   574   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
   575   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
   576   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
   577   i> write(2) -> 2:
       
   578   i>     0\n
       
   579   i> flush() -> None
       
   580   o> readline() -> 2:
       
   581   o>     0\n
       
   582   o> readline() -> 2:
       
   583   o>     1\n
       
   584   o> read(1) -> 1: 0
       
   585   result: 0
       
   586   remote output: 
       
   587   e> read(-1) -> 157:
       
   588   e>     adding changesets\n
       
   589   e>     adding manifests\n
       
   590   e>     adding file changes\n
       
   591   e>     ui.write 1 line flush\n
       
   592   e>     transaction abort!\n
       
   593   e>     rollback completed\n
       
   594   e>     abort: pretxnchangegroup.fail hook failed\n
       
   595 
   366 
   596 Multiple writes + flush
   367 Multiple writes + flush
   597 
   368 
   598   $ cat > .hg/hgrc << EOF
   369   $ cat > .hg/hgrc << EOF
   599   > [hooks]
   370   > [hooks]
   620   o> readline() -> 444:
   391   o> readline() -> 444:
   621   o>     capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
   392   o>     capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
   622   o> readline() -> 2:
   393   o> readline() -> 2:
   623   o>     1\n
   394   o>     1\n
   624   o> readline() -> 1:
   395   o> readline() -> 1:
   625   o>     \n
       
   626   sending unbundle command
       
   627   i> write(9) -> 9:
       
   628   i>     unbundle\n
       
   629   i> write(9) -> 9:
       
   630   i>     heads 10\n
       
   631   i> write(10) -> 10: 666f726365
       
   632   i> flush() -> None
       
   633   o> readline() -> 2:
       
   634   o>     0\n
       
   635   i> write(4) -> 4:
       
   636   i>     426\n
       
   637   i> write(426) -> 426:
       
   638   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
   639   i>     test\n
       
   640   i>     0 0\n
       
   641   i>     foo\n
       
   642   i>     \n
       
   643   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
   644   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
   645   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
   646   i> write(2) -> 2:
       
   647   i>     0\n
       
   648   i> flush() -> None
       
   649   o> readline() -> 2:
       
   650   o>     0\n
       
   651   o> readline() -> 2:
       
   652   o>     1\n
       
   653   o> read(1) -> 1: 0
       
   654   result: 0
       
   655   remote output: 
       
   656   e> read(-1) -> 161:
       
   657   e>     adding changesets\n
       
   658   e>     adding manifests\n
       
   659   e>     adding file changes\n
       
   660   e>     ui.write 1st\n
       
   661   e>     ui.write 2nd\n
       
   662   e>     transaction abort!\n
       
   663   e>     rollback completed\n
       
   664   e>     abort: pretxnchangegroup.fail hook failed\n
       
   665   
       
   666   testing ssh2
       
   667   creating ssh peer from handshake results
       
   668   i> write(171) -> 171:
       
   669   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
   670   i>     hello\n
       
   671   i>     between\n
       
   672   i>     pairs 81\n
       
   673   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
   674   i> flush() -> None
       
   675   o> readline() -> 62:
       
   676   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
   677   o> readline() -> 4:
       
   678   o>     443\n
       
   679   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
   680   o> read(1) -> 1:
       
   681   o>     \n
   396   o>     \n
   682   sending unbundle command
   397   sending unbundle command
   683   i> write(9) -> 9:
   398   i> write(9) -> 9:
   684   i>     unbundle\n
   399   i>     unbundle\n
   685   i> write(9) -> 9:
   400   i> write(9) -> 9:
   788   e>     ui.write 2\n
   503   e>     ui.write 2\n
   789   e>     ui.write_err 2\n
   504   e>     ui.write_err 2\n
   790   e>     transaction abort!\n
   505   e>     transaction abort!\n
   791   e>     rollback completed\n
   506   e>     rollback completed\n
   792   e>     abort: pretxnchangegroup.fail hook failed\n
   507   e>     abort: pretxnchangegroup.fail hook failed\n
   793   
   508 
   794   testing ssh2
       
   795   creating ssh peer from handshake results
       
   796   i> write(171) -> 171:
       
   797   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
   798   i>     hello\n
       
   799   i>     between\n
       
   800   i>     pairs 81\n
       
   801   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
   802   i> flush() -> None
       
   803   o> readline() -> 62:
       
   804   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
   805   o> readline() -> 4:
       
   806   o>     443\n
       
   807   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
   808   o> read(1) -> 1:
       
   809   o>     \n
       
   810   sending unbundle command
       
   811   i> write(9) -> 9:
       
   812   i>     unbundle\n
       
   813   i> write(9) -> 9:
       
   814   i>     heads 10\n
       
   815   i> write(10) -> 10: 666f726365
       
   816   i> flush() -> None
       
   817   o> readline() -> 2:
       
   818   o>     0\n
       
   819   i> write(4) -> 4:
       
   820   i>     426\n
       
   821   i> write(426) -> 426:
       
   822   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
   823   i>     test\n
       
   824   i>     0 0\n
       
   825   i>     foo\n
       
   826   i>     \n
       
   827   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
   828   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
   829   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
   830   i> write(2) -> 2:
       
   831   i>     0\n
       
   832   i> flush() -> None
       
   833   o> readline() -> 2:
       
   834   o>     0\n
       
   835   o> readline() -> 2:
       
   836   o>     1\n
       
   837   o> read(1) -> 1: 0
       
   838   result: 0
       
   839   remote output: 
       
   840   e> read(-1) -> 187:
       
   841   e>     adding changesets\n
       
   842   e>     adding manifests\n
       
   843   e>     adding file changes\n
       
   844   e>     ui.write 1\n
       
   845   e>     ui.write_err 1\n
       
   846   e>     ui.write 2\n
       
   847   e>     ui.write_err 2\n
       
   848   e>     transaction abort!\n
       
   849   e>     rollback completed\n
       
   850   e>     abort: pretxnchangegroup.fail hook failed\n
       
   851 
   509 
   852 print() output is captured
   510 print() output is captured
   853 
   511 
   854   $ cat > .hg/hgrc << EOF
   512   $ cat > .hg/hgrc << EOF
   855   > [hooks]
   513   > [hooks]
   876   o> readline() -> 444:
   534   o> readline() -> 444:
   877   o>     capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
   535   o>     capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n
   878   o> readline() -> 2:
   536   o> readline() -> 2:
   879   o>     1\n
   537   o>     1\n
   880   o> readline() -> 1:
   538   o> readline() -> 1:
   881   o>     \n
       
   882   sending unbundle command
       
   883   i> write(9) -> 9:
       
   884   i>     unbundle\n
       
   885   i> write(9) -> 9:
       
   886   i>     heads 10\n
       
   887   i> write(10) -> 10: 666f726365
       
   888   i> flush() -> None
       
   889   o> readline() -> 2:
       
   890   o>     0\n
       
   891   i> write(4) -> 4:
       
   892   i>     426\n
       
   893   i> write(426) -> 426:
       
   894   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
   895   i>     test\n
       
   896   i>     0 0\n
       
   897   i>     foo\n
       
   898   i>     \n
       
   899   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
   900   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
   901   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
   902   i> write(2) -> 2:
       
   903   i>     0\n
       
   904   i> flush() -> None
       
   905   o> readline() -> 2:
       
   906   o>     0\n
       
   907   o> readline() -> 2:
       
   908   o>     1\n
       
   909   o> read(1) -> 1: 0
       
   910   result: 0
       
   911   remote output: 
       
   912   e> read(-1) -> 148:
       
   913   e>     adding changesets\n
       
   914   e>     adding manifests\n
       
   915   e>     adding file changes\n
       
   916   e>     printed line\n
       
   917   e>     transaction abort!\n
       
   918   e>     rollback completed\n
       
   919   e>     abort: pretxnchangegroup.fail hook failed\n
       
   920   
       
   921   testing ssh2
       
   922   creating ssh peer from handshake results
       
   923   i> write(171) -> 171:
       
   924   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
   925   i>     hello\n
       
   926   i>     between\n
       
   927   i>     pairs 81\n
       
   928   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
   929   i> flush() -> None
       
   930   o> readline() -> 62:
       
   931   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
   932   o> readline() -> 4:
       
   933   o>     443\n
       
   934   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
   935   o> read(1) -> 1:
       
   936   o>     \n
   539   o>     \n
   937   sending unbundle command
   540   sending unbundle command
   938   i> write(9) -> 9:
   541   i> write(9) -> 9:
   939   i>     unbundle\n
   542   i>     unbundle\n
   940   i> write(9) -> 9:
   543   i> write(9) -> 9:
  1042   e>     print 2\n
   645   e>     print 2\n
  1043   e>     ui.write 2\n
   646   e>     ui.write 2\n
  1044   e>     transaction abort!\n
   647   e>     transaction abort!\n
  1045   e>     rollback completed\n
   648   e>     rollback completed\n
  1046   e>     abort: pretxnchangegroup.fail hook failed\n
   649   e>     abort: pretxnchangegroup.fail hook failed\n
  1047   
       
  1048   testing ssh2
       
  1049   creating ssh peer from handshake results
       
  1050   i> write(171) -> 171:
       
  1051   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
  1052   i>     hello\n
       
  1053   i>     between\n
       
  1054   i>     pairs 81\n
       
  1055   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
  1056   i> flush() -> None
       
  1057   o> readline() -> 62:
       
  1058   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
  1059   o> readline() -> 4:
       
  1060   o>     443\n
       
  1061   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
  1062   o> read(1) -> 1:
       
  1063   o>     \n
       
  1064   sending unbundle command
       
  1065   i> write(9) -> 9:
       
  1066   i>     unbundle\n
       
  1067   i> write(9) -> 9:
       
  1068   i>     heads 10\n
       
  1069   i> write(10) -> 10: 666f726365
       
  1070   i> flush() -> None
       
  1071   o> readline() -> 2:
       
  1072   o>     0\n
       
  1073   i> write(4) -> 4:
       
  1074   i>     426\n
       
  1075   i> write(426) -> 426:
       
  1076   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
  1077   i>     test\n
       
  1078   i>     0 0\n
       
  1079   i>     foo\n
       
  1080   i>     \n
       
  1081   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
  1082   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
  1083   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
  1084   i> write(2) -> 2:
       
  1085   i>     0\n
       
  1086   i> flush() -> None
       
  1087   o> readline() -> 2:
       
  1088   o>     0\n
       
  1089   o> readline() -> 2:
       
  1090   o>     1\n
       
  1091   o> read(1) -> 1: 0
       
  1092   result: 0
       
  1093   remote output: 
       
  1094   e> read(-1) -> 173:
       
  1095   e>     adding changesets\n
       
  1096   e>     adding manifests\n
       
  1097   e>     adding file changes\n
       
  1098   e>     print 1\n
       
  1099   e>     ui.write 1\n
       
  1100   e>     print 2\n
       
  1101   e>     ui.write 2\n
       
  1102   e>     transaction abort!\n
       
  1103   e>     rollback completed\n
       
  1104   e>     abort: pretxnchangegroup.fail hook failed\n
       
  1105 
   650 
  1106 print() to stdout and stderr both get captured
   651 print() to stdout and stderr both get captured
  1107 
   652 
  1108   $ cat > .hg/hgrc << EOF
   653   $ cat > .hg/hgrc << EOF
  1109   > [hooks]
   654   > [hooks]
  1172   e>     stdout 2\n
   717   e>     stdout 2\n
  1173   e>     stderr 2\n
   718   e>     stderr 2\n
  1174   e>     transaction abort!\n
   719   e>     transaction abort!\n
  1175   e>     rollback completed\n
   720   e>     rollback completed\n
  1176   e>     abort: pretxnchangegroup.fail hook failed\n
   721   e>     abort: pretxnchangegroup.fail hook failed\n
  1177   
       
  1178   testing ssh2
       
  1179   creating ssh peer from handshake results
       
  1180   i> write(171) -> 171:
       
  1181   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
  1182   i>     hello\n
       
  1183   i>     between\n
       
  1184   i>     pairs 81\n
       
  1185   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
  1186   i> flush() -> None
       
  1187   o> readline() -> 62:
       
  1188   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
  1189   o> readline() -> 4:
       
  1190   o>     443\n
       
  1191   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
  1192   o> read(1) -> 1:
       
  1193   o>     \n
       
  1194   sending unbundle command
       
  1195   i> write(9) -> 9:
       
  1196   i>     unbundle\n
       
  1197   i> write(9) -> 9:
       
  1198   i>     heads 10\n
       
  1199   i> write(10) -> 10: 666f726365
       
  1200   i> flush() -> None
       
  1201   o> readline() -> 2:
       
  1202   o>     0\n
       
  1203   i> write(4) -> 4:
       
  1204   i>     426\n
       
  1205   i> write(426) -> 426:
       
  1206   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
  1207   i>     test\n
       
  1208   i>     0 0\n
       
  1209   i>     foo\n
       
  1210   i>     \n
       
  1211   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
  1212   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
  1213   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
  1214   i> write(2) -> 2:
       
  1215   i>     0\n
       
  1216   i> flush() -> None
       
  1217   o> readline() -> 2:
       
  1218   o>     0\n
       
  1219   o> readline() -> 2:
       
  1220   o>     1\n
       
  1221   o> read(1) -> 1: 0
       
  1222   result: 0
       
  1223   remote output: 
       
  1224   e> read(-1) -> 171:
       
  1225   e>     adding changesets\n
       
  1226   e>     adding manifests\n
       
  1227   e>     adding file changes\n
       
  1228   e>     stdout 1\n
       
  1229   e>     stderr 1\n
       
  1230   e>     stdout 2\n
       
  1231   e>     stderr 2\n
       
  1232   e>     transaction abort!\n
       
  1233   e>     rollback completed\n
       
  1234   e>     abort: pretxnchangegroup.fail hook failed\n
       
  1235 
   722 
  1236 Shell hook writing to stdout has output captured
   723 Shell hook writing to stdout has output captured
  1237 
   724 
  1238   $ cat > $TESTTMP/hook.sh << EOF
   725   $ cat > $TESTTMP/hook.sh << EOF
  1239   > echo 'stdout 1'
   726   > echo 'stdout 1'
  1306   e>     stdout 1\n
   793   e>     stdout 1\n
  1307   e>     stdout 2\n
   794   e>     stdout 2\n
  1308   e>     transaction abort!\n
   795   e>     transaction abort!\n
  1309   e>     rollback completed\n
   796   e>     rollback completed\n
  1310   e>     abort: pretxnchangegroup.fail hook exited with status 1\n
   797   e>     abort: pretxnchangegroup.fail hook exited with status 1\n
  1311   
       
  1312   testing ssh2
       
  1313   creating ssh peer from handshake results
       
  1314   i> write(171) -> 171:
       
  1315   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
  1316   i>     hello\n
       
  1317   i>     between\n
       
  1318   i>     pairs 81\n
       
  1319   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
  1320   i> flush() -> None
       
  1321   o> readline() -> 62:
       
  1322   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
  1323   o> readline() -> 4:
       
  1324   o>     443\n
       
  1325   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
  1326   o> read(1) -> 1:
       
  1327   o>     \n
       
  1328   sending unbundle command
       
  1329   i> write(9) -> 9:
       
  1330   i>     unbundle\n
       
  1331   i> write(9) -> 9:
       
  1332   i>     heads 10\n
       
  1333   i> write(10) -> 10: 666f726365
       
  1334   i> flush() -> None
       
  1335   o> readline() -> 2:
       
  1336   o>     0\n
       
  1337   i> write(4) -> 4:
       
  1338   i>     426\n
       
  1339   i> write(426) -> 426:
       
  1340   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
  1341   i>     test\n
       
  1342   i>     0 0\n
       
  1343   i>     foo\n
       
  1344   i>     \n
       
  1345   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
  1346   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
  1347   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
  1348   i> write(2) -> 2:
       
  1349   i>     0\n
       
  1350   i> flush() -> None
       
  1351   o> readline() -> 2:
       
  1352   o>     0\n
       
  1353   o> readline() -> 2:
       
  1354   o>     1\n
       
  1355   o> read(1) -> 1: 0
       
  1356   result: 0
       
  1357   remote output: 
       
  1358   e> read(-1) -> 167:
       
  1359   e>     adding changesets\n
       
  1360   e>     adding manifests\n
       
  1361   e>     adding file changes\n
       
  1362   e>     stdout 1\n
       
  1363   e>     stdout 2\n
       
  1364   e>     transaction abort!\n
       
  1365   e>     rollback completed\n
       
  1366   e>     abort: pretxnchangegroup.fail hook exited with status 1\n
       
  1367 
       
  1368 Shell hook writing to stderr has output captured
   798 Shell hook writing to stderr has output captured
  1369 
   799 
  1370   $ cat > $TESTTMP/hook.sh << EOF
   800   $ cat > $TESTTMP/hook.sh << EOF
  1371   > echo 'stderr 1' 1>&2
   801   > echo 'stderr 1' 1>&2
  1372   > echo 'stderr 2' 1>&2
   802   > echo 'stderr 2' 1>&2
  1433   e>     stderr 1\n
   863   e>     stderr 1\n
  1434   e>     stderr 2\n
   864   e>     stderr 2\n
  1435   e>     transaction abort!\n
   865   e>     transaction abort!\n
  1436   e>     rollback completed\n
   866   e>     rollback completed\n
  1437   e>     abort: pretxnchangegroup.fail hook exited with status 1\n
   867   e>     abort: pretxnchangegroup.fail hook exited with status 1\n
  1438   
       
  1439   testing ssh2
       
  1440   creating ssh peer from handshake results
       
  1441   i> write(171) -> 171:
       
  1442   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
  1443   i>     hello\n
       
  1444   i>     between\n
       
  1445   i>     pairs 81\n
       
  1446   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
  1447   i> flush() -> None
       
  1448   o> readline() -> 62:
       
  1449   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
  1450   o> readline() -> 4:
       
  1451   o>     443\n
       
  1452   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
  1453   o> read(1) -> 1:
       
  1454   o>     \n
       
  1455   sending unbundle command
       
  1456   i> write(9) -> 9:
       
  1457   i>     unbundle\n
       
  1458   i> write(9) -> 9:
       
  1459   i>     heads 10\n
       
  1460   i> write(10) -> 10: 666f726365
       
  1461   i> flush() -> None
       
  1462   o> readline() -> 2:
       
  1463   o>     0\n
       
  1464   i> write(4) -> 4:
       
  1465   i>     426\n
       
  1466   i> write(426) -> 426:
       
  1467   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
  1468   i>     test\n
       
  1469   i>     0 0\n
       
  1470   i>     foo\n
       
  1471   i>     \n
       
  1472   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
  1473   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
  1474   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
  1475   i> write(2) -> 2:
       
  1476   i>     0\n
       
  1477   i> flush() -> None
       
  1478   o> readline() -> 2:
       
  1479   o>     0\n
       
  1480   o> readline() -> 2:
       
  1481   o>     1\n
       
  1482   o> read(1) -> 1: 0
       
  1483   result: 0
       
  1484   remote output: 
       
  1485   e> read(-1) -> 167:
       
  1486   e>     adding changesets\n
       
  1487   e>     adding manifests\n
       
  1488   e>     adding file changes\n
       
  1489   e>     stderr 1\n
       
  1490   e>     stderr 2\n
       
  1491   e>     transaction abort!\n
       
  1492   e>     rollback completed\n
       
  1493   e>     abort: pretxnchangegroup.fail hook exited with status 1\n
       
  1494 
       
  1495 Shell hook writing to stdout and stderr has output captured
   868 Shell hook writing to stdout and stderr has output captured
  1496 
   869 
  1497   $ cat > $TESTTMP/hook.sh << EOF
   870   $ cat > $TESTTMP/hook.sh << EOF
  1498   > echo 'stdout 1'
   871   > echo 'stdout 1'
  1499   > echo 'stderr 1' 1>&2
   872   > echo 'stderr 1' 1>&2
  1564   e>     stdout 2\n
   937   e>     stdout 2\n
  1565   e>     stderr 2\n
   938   e>     stderr 2\n
  1566   e>     transaction abort!\n
   939   e>     transaction abort!\n
  1567   e>     rollback completed\n
   940   e>     rollback completed\n
  1568   e>     abort: pretxnchangegroup.fail hook exited with status 1\n
   941   e>     abort: pretxnchangegroup.fail hook exited with status 1\n
  1569   
       
  1570   testing ssh2
       
  1571   creating ssh peer from handshake results
       
  1572   i> write(171) -> 171:
       
  1573   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
  1574   i>     hello\n
       
  1575   i>     between\n
       
  1576   i>     pairs 81\n
       
  1577   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
  1578   i> flush() -> None
       
  1579   o> readline() -> 62:
       
  1580   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
  1581   o> readline() -> 4:
       
  1582   o>     443\n
       
  1583   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
  1584   o> read(1) -> 1:
       
  1585   o>     \n
       
  1586   sending unbundle command
       
  1587   i> write(9) -> 9:
       
  1588   i>     unbundle\n
       
  1589   i> write(9) -> 9:
       
  1590   i>     heads 10\n
       
  1591   i> write(10) -> 10: 666f726365
       
  1592   i> flush() -> None
       
  1593   o> readline() -> 2:
       
  1594   o>     0\n
       
  1595   i> write(4) -> 4:
       
  1596   i>     426\n
       
  1597   i> write(426) -> 426:
       
  1598   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
  1599   i>     test\n
       
  1600   i>     0 0\n
       
  1601   i>     foo\n
       
  1602   i>     \n
       
  1603   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
  1604   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
  1605   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
  1606   i> write(2) -> 2:
       
  1607   i>     0\n
       
  1608   i> flush() -> None
       
  1609   o> readline() -> 2:
       
  1610   o>     0\n
       
  1611   o> readline() -> 2:
       
  1612   o>     1\n
       
  1613   o> read(1) -> 1: 0
       
  1614   result: 0
       
  1615   remote output: 
       
  1616   e> read(-1) -> 185:
       
  1617   e>     adding changesets\n
       
  1618   e>     adding manifests\n
       
  1619   e>     adding file changes\n
       
  1620   e>     stdout 1\n
       
  1621   e>     stderr 1\n
       
  1622   e>     stdout 2\n
       
  1623   e>     stderr 2\n
       
  1624   e>     transaction abort!\n
       
  1625   e>     rollback completed\n
       
  1626   e>     abort: pretxnchangegroup.fail hook exited with status 1\n
       
  1627 
       
  1628 Shell and Python hooks writing to stdout and stderr have output captured
   942 Shell and Python hooks writing to stdout and stderr have output captured
  1629 
   943 
  1630   $ cat > $TESTTMP/hook.sh << EOF
   944   $ cat > $TESTTMP/hook.sh << EOF
  1631   > echo 'shell stdout 1'
   945   > echo 'shell stdout 1'
  1632   > echo 'shell stderr 1' 1>&2
   946   > echo 'shell stderr 1' 1>&2
  1707   e>     stdout 2\n
  1021   e>     stdout 2\n
  1708   e>     stderr 2\n
  1022   e>     stderr 2\n
  1709   e>     transaction abort!\n
  1023   e>     transaction abort!\n
  1710   e>     rollback completed\n
  1024   e>     rollback completed\n
  1711   e>     abort: pretxnchangegroup.b hook failed\n
  1025   e>     abort: pretxnchangegroup.b hook failed\n
  1712   
       
  1713   testing ssh2
       
  1714   creating ssh peer from handshake results
       
  1715   i> write(171) -> 171:
       
  1716   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
  1717   i>     hello\n
       
  1718   i>     between\n
       
  1719   i>     pairs 81\n
       
  1720   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
  1721   i> flush() -> None
       
  1722   o> readline() -> 62:
       
  1723   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
  1724   o> readline() -> 4:
       
  1725   o>     443\n
       
  1726   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
  1727   o> read(1) -> 1:
       
  1728   o>     \n
       
  1729   sending unbundle command
       
  1730   i> write(9) -> 9:
       
  1731   i>     unbundle\n
       
  1732   i> write(9) -> 9:
       
  1733   i>     heads 10\n
       
  1734   i> write(10) -> 10: 666f726365
       
  1735   i> flush() -> None
       
  1736   o> readline() -> 2:
       
  1737   o>     0\n
       
  1738   i> write(4) -> 4:
       
  1739   i>     426\n
       
  1740   i> write(426) -> 426:
       
  1741   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
  1742   i>     test\n
       
  1743   i>     0 0\n
       
  1744   i>     foo\n
       
  1745   i>     \n
       
  1746   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
  1747   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
  1748   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
  1749   i> write(2) -> 2:
       
  1750   i>     0\n
       
  1751   i> flush() -> None
       
  1752   o> readline() -> 2:
       
  1753   o>     0\n
       
  1754   o> readline() -> 2:
       
  1755   o>     1\n
       
  1756   o> read(1) -> 1: 0
       
  1757   result: 0
       
  1758   remote output: 
       
  1759   e> read(-1) -> 228:
       
  1760   e>     adding changesets\n
       
  1761   e>     adding manifests\n
       
  1762   e>     adding file changes\n
       
  1763   e>     shell stdout 1\n
       
  1764   e>     shell stderr 1\n
       
  1765   e>     shell stdout 2\n
       
  1766   e>     shell stderr 2\n
       
  1767   e>     stdout 1\n
       
  1768   e>     stderr 1\n
       
  1769   e>     stdout 2\n
       
  1770   e>     stderr 2\n
       
  1771   e>     transaction abort!\n
       
  1772   e>     rollback completed\n
       
  1773   e>     abort: pretxnchangegroup.b hook failed\n
       
  1774 
       
  1775   $ cd ..
  1026   $ cd ..
  1776 
  1027 
  1777 Pushing a bundle1 with no output
  1028 Pushing a bundle1 with no output
  1778 
  1029 
  1779   $ hg init simplerepo
  1030   $ hg init simplerepo
  1835   e> read(-1) -> 100:
  1086   e> read(-1) -> 100:
  1836   e>     adding changesets\n
  1087   e>     adding changesets\n
  1837   e>     adding manifests\n
  1088   e>     adding manifests\n
  1838   e>     adding file changes\n
  1089   e>     adding file changes\n
  1839   e>     added 1 changesets with 1 changes to 1 files\n
  1090   e>     added 1 changesets with 1 changes to 1 files\n
  1840   
       
  1841   testing ssh2
       
  1842   creating ssh peer from handshake results
       
  1843   i> write(171) -> 171:
       
  1844   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
  1845   i>     hello\n
       
  1846   i>     between\n
       
  1847   i>     pairs 81\n
       
  1848   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
  1849   i> flush() -> None
       
  1850   o> readline() -> 62:
       
  1851   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
  1852   o> readline() -> 4:
       
  1853   o>     443\n
       
  1854   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
  1855   o> read(1) -> 1:
       
  1856   o>     \n
       
  1857   sending unbundle command
       
  1858   i> write(9) -> 9:
       
  1859   i>     unbundle\n
       
  1860   i> write(9) -> 9:
       
  1861   i>     heads 10\n
       
  1862   i> write(10) -> 10: 666f726365
       
  1863   i> flush() -> None
       
  1864   o> readline() -> 2:
       
  1865   o>     0\n
       
  1866   i> write(4) -> 4:
       
  1867   i>     426\n
       
  1868   i> write(426) -> 426:
       
  1869   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
  1870   i>     test\n
       
  1871   i>     0 0\n
       
  1872   i>     foo\n
       
  1873   i>     \n
       
  1874   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
  1875   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
  1876   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
  1877   i> write(2) -> 2:
       
  1878   i>     0\n
       
  1879   i> flush() -> None
       
  1880   o> readline() -> 2:
       
  1881   o>     0\n
       
  1882   o> readline() -> 2:
       
  1883   o>     1\n
       
  1884   o> read(1) -> 1: 1
       
  1885   result: 1
       
  1886   remote output: 
       
  1887   e> read(-1) -> 100:
       
  1888   e>     adding changesets\n
       
  1889   e>     adding manifests\n
       
  1890   e>     adding file changes\n
       
  1891   e>     added 1 changesets with 1 changes to 1 files\n
       
  1892 
       
  1893   $ cd ..
  1091   $ cd ..
  1894 
  1092 
  1895 Pushing a bundle1 with ui.write() and ui.write_err()
  1093 Pushing a bundle1 with ui.write() and ui.write_err()
  1896 
  1094 
  1897   $ cat > $TESTTMP/hook << EOF
  1095   $ cat > $TESTTMP/hook << EOF
  1969   e>     ui.write 1\n
  1167   e>     ui.write 1\n
  1970   e>     ui.write_err 1\n
  1168   e>     ui.write_err 1\n
  1971   e>     ui.write 2\n
  1169   e>     ui.write 2\n
  1972   e>     ui.write_err 2\n
  1170   e>     ui.write_err 2\n
  1973   e>     added 1 changesets with 1 changes to 1 files\n
  1171   e>     added 1 changesets with 1 changes to 1 files\n
  1974   
       
  1975   testing ssh2
       
  1976   creating ssh peer from handshake results
       
  1977   i> write(171) -> 171:
       
  1978   i>     upgrade * proto=exp-ssh-v2-0003\n (glob)
       
  1979   i>     hello\n
       
  1980   i>     between\n
       
  1981   i>     pairs 81\n
       
  1982   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000
       
  1983   i> flush() -> None
       
  1984   o> readline() -> 62:
       
  1985   o>     upgraded * exp-ssh-v2-0003\n (glob)
       
  1986   o> readline() -> 4:
       
  1987   o>     443\n
       
  1988   o> read(443) -> 443: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
       
  1989   o> read(1) -> 1:
       
  1990   o>     \n
       
  1991   sending unbundle command
       
  1992   i> write(9) -> 9:
       
  1993   i>     unbundle\n
       
  1994   i> write(9) -> 9:
       
  1995   i>     heads 10\n
       
  1996   i> write(10) -> 10: 666f726365
       
  1997   i> flush() -> None
       
  1998   o> readline() -> 2:
       
  1999   o>     0\n
       
  2000   i> write(4) -> 4:
       
  2001   i>     426\n
       
  2002   i> write(426) -> 426:
       
  2003   i>     HG10UN\x00\x00\x00\x9eh\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>cba485ca3678256e044428f70f58291196f6e9de\n
       
  2004   i>     test\n
       
  2005   i>     0 0\n
       
  2006   i>     foo\n
       
  2007   i>     \n
       
  2008   i>     initial\x00\x00\x00\x00\x00\x00\x00\x8d\xcb\xa4\x85\xca6x%n\x04D(\xf7\x0fX)\x11\x96\xf6\xe9\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-foo\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe\n
       
  2009   i>     \x00\x00\x00\x00\x00\x00\x00\x07foo\x00\x00\x00b6/\xef(L\xe2\xca\x02\xae\xcc\x8d\xe6\xd5\xe8\xa1\xc3\xaf\x05V\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00h\x98b\x13\xbdD\x85\xeaQS55\xe3\xfc\x9ex\x00zq\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x020\n
       
  2010   i>     \x00\x00\x00\x00\x00\x00\x00\x00
       
  2011   i> write(2) -> 2:
       
  2012   i>     0\n
       
  2013   i> flush() -> None
       
  2014   o> readline() -> 2:
       
  2015   o>     0\n
       
  2016   o> readline() -> 2:
       
  2017   o>     1\n
       
  2018   o> read(1) -> 1: 1
       
  2019   result: 1
       
  2020   remote output: 
       
  2021   e> read(-1) -> 152:
       
  2022   e>     adding changesets\n
       
  2023   e>     adding manifests\n
       
  2024   e>     adding file changes\n
       
  2025   e>     ui.write 1\n
       
  2026   e>     ui.write_err 1\n
       
  2027   e>     ui.write 2\n
       
  2028   e>     ui.write_err 2\n
       
  2029   e>     added 1 changesets with 1 changes to 1 files\n