D2842: util: don't log low-level I/O calls for HTTP peer

2018-03-21 Thread indygreg (Gregory Szorc)
This revision was automatically updated to reflect the committed changes.
Closed by commit rHGd3a9036d9ae9: util: dont log low-level I/O calls for 
HTTP peer (authored by indygreg, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2842?vs=7192=7220

REVISION DETAIL
  https://phab.mercurial-scm.org/D2842

AFFECTED FILES
  mercurial/debugcommands.py
  mercurial/util.py
  tests/test-http-protocol.t

CHANGE DETAILS

diff --git a/tests/test-http-protocol.t b/tests/test-http-protocol.t
--- a/tests/test-http-protocol.t
+++ b/tests/test-http-protocol.t
@@ -175,29 +175,21 @@
   > command listkeys
   > namespace namespaces
   > EOF
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=capabilities HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 21:
   s> Content-Length: *\r\n (glob)
-  s> readline() -> 2:
   s> \r\n
-  s> read(*) -> *: lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$ (glob)
+  s> lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$
   sending listkeys command
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> vary: X-HgArg-1,X-HgProto-1\r\n
@@ -208,19 +200,12 @@
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
@@ -235,28 +220,20 @@
   > x-hgarg-1: namespace=namespaces
   > EOF
   using raw connection to peer
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> user-agent: mercurial/proto-1.0 (Mercurial 42)\r\n
   s> x-hgarg-1: namespace=namespaces\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -762,7 +762,8 @@
 return makeloggingfileobject(observer.fh, res, observer.name,
  reads=observer.reads,
  writes=observer.writes,
- logdata=observer.logdata)
+ logdata=observer.logdata,
+ logdataapis=observer.logdataapis)
 
 def recv(self, *args, **kwargs):
 return object.__getattribute__(self, r'_observedcall')(
@@ -825,29 +826,37 @@
 class baseproxyobserver(object):
 def _writedata(self, data):
 if not self.logdata:
-self.fh.write('\n')
-self.fh.flush()
+if self.logdataapis:
+self.fh.write('\n')
+self.fh.flush()
 return
 
 # Simple case writes all data on a single line.
 if b'\n' not in data:
-self.fh.write(': %s\n' % escapedata(data))
+if self.logdataapis:
+self.fh.write(': %s\n' % escapedata(data))
+else:
+self.fh.write('%s> %s\n' % (self.name, escapedata(data)))
 self.fh.flush()
 return
 
 # Data with newlines is written to 

D2842: util: don't log low-level I/O calls for HTTP peer

2018-03-21 Thread indygreg (Gregory Szorc)
indygreg updated this revision to Diff 7192.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2842?vs=7161=7192

REVISION DETAIL
  https://phab.mercurial-scm.org/D2842

AFFECTED FILES
  mercurial/debugcommands.py
  mercurial/util.py
  tests/test-http-protocol.t

CHANGE DETAILS

diff --git a/tests/test-http-protocol.t b/tests/test-http-protocol.t
--- a/tests/test-http-protocol.t
+++ b/tests/test-http-protocol.t
@@ -175,29 +175,21 @@
   > command listkeys
   > namespace namespaces
   > EOF
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=capabilities HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 21:
   s> Content-Length: *\r\n (glob)
-  s> readline() -> 2:
   s> \r\n
-  s> read(*) -> *: lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$ (glob)
+  s> lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$
   sending listkeys command
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> vary: X-HgArg-1,X-HgProto-1\r\n
@@ -208,19 +200,12 @@
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
@@ -235,28 +220,20 @@
   > x-hgarg-1: namespace=namespaces
   > EOF
   using raw connection to peer
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> user-agent: mercurial/proto-1.0 (Mercurial 42)\r\n
   s> x-hgarg-1: namespace=namespaces\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -762,7 +762,8 @@
 return makeloggingfileobject(observer.fh, res, observer.name,
  reads=observer.reads,
  writes=observer.writes,
- logdata=observer.logdata)
+ logdata=observer.logdata,
+ logdataapis=observer.logdataapis)
 
 def recv(self, *args, **kwargs):
 return object.__getattribute__(self, r'_observedcall')(
@@ -825,29 +826,37 @@
 class baseproxyobserver(object):
 def _writedata(self, data):
 if not self.logdata:
-self.fh.write('\n')
-self.fh.flush()
+if self.logdataapis:
+self.fh.write('\n')
+self.fh.flush()
 return
 
 # Simple case writes all data on a single line.
 if b'\n' not in data:
-self.fh.write(': %s\n' % escapedata(data))
+if self.logdataapis:
+self.fh.write(': %s\n' % escapedata(data))
+else:
+self.fh.write('%s> %s\n' % (self.name, escapedata(data)))
 self.fh.flush()
 return
 
 # Data with newlines is written to multiple lines.
-self.fh.write(':\n')
+if self.logdataapis:
+self.fh.write(':\n')
+
 lines = data.splitlines(True)
 

D2842: util: don't log low-level I/O calls for HTTP peer

2018-03-20 Thread indygreg (Gregory Szorc)
indygreg updated this revision to Diff 7161.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2842?vs=7008=7161

REVISION DETAIL
  https://phab.mercurial-scm.org/D2842

AFFECTED FILES
  mercurial/debugcommands.py
  mercurial/util.py
  tests/test-http-protocol.t

CHANGE DETAILS

diff --git a/tests/test-http-protocol.t b/tests/test-http-protocol.t
--- a/tests/test-http-protocol.t
+++ b/tests/test-http-protocol.t
@@ -175,29 +175,21 @@
   > command listkeys
   > namespace namespaces
   > EOF
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=capabilities HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 21:
   s> Content-Length: *\r\n (glob)
-  s> readline() -> 2:
   s> \r\n
-  s> read(*) -> *: lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$ (glob)
+  s> lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$
   sending listkeys command
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> vary: X-HgArg-1,X-HgProto-1\r\n
@@ -208,19 +200,12 @@
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
@@ -235,28 +220,20 @@
   > x-hgarg-1: namespace=namespaces
   > EOF
   using raw connection to peer
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> user-agent: mercurial/proto-1.0 (Mercurial 42)\r\n (glob)
   s> x-hgarg-1: namespace=namespaces\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -762,7 +762,8 @@
 return makeloggingfileobject(observer.fh, res, observer.name,
  reads=observer.reads,
  writes=observer.writes,
- logdata=observer.logdata)
+ logdata=observer.logdata,
+ logdataapis=observer.logdataapis)
 
 def recv(self, *args, **kwargs):
 return object.__getattribute__(self, r'_observedcall')(
@@ -825,29 +826,37 @@
 class baseproxyobserver(object):
 def _writedata(self, data):
 if not self.logdata:
-self.fh.write('\n')
-self.fh.flush()
+if self.logdataapis:
+self.fh.write('\n')
+self.fh.flush()
 return
 
 # Simple case writes all data on a single line.
 if b'\n' not in data:
-self.fh.write(': %s\n' % escapedata(data))
+if self.logdataapis:
+self.fh.write(': %s\n' % escapedata(data))
+else:
+self.fh.write('%s> %s\n' % (self.name, escapedata(data)))
 self.fh.flush()
 return
 
 # Data with newlines is written to multiple lines.
-self.fh.write(':\n')
+if self.logdataapis:
+self.fh.write(':\n')
+
 lines = 

D2842: util: don't log low-level I/O calls for HTTP peer

2018-03-19 Thread durin42 (Augie Fackler)
durin42 accepted this revision.
durin42 added a comment.
This revision is now accepted and ready to land.


  This one needs rebased, but looks good.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2842

To: indygreg, #hg-reviewers, durin42
Cc: durin42, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D2842: util: don't log low-level I/O calls for HTTP peer

2018-03-13 Thread indygreg (Gregory Szorc)
indygreg updated this revision to Diff 7008.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2842?vs=6996=7008

REVISION DETAIL
  https://phab.mercurial-scm.org/D2842

AFFECTED FILES
  mercurial/debugcommands.py
  mercurial/util.py
  tests/test-http-protocol.t

CHANGE DETAILS

diff --git a/tests/test-http-protocol.t b/tests/test-http-protocol.t
--- a/tests/test-http-protocol.t
+++ b/tests/test-http-protocol.t
@@ -175,29 +175,21 @@
   > command listkeys
   > namespace namespaces
   > EOF
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=capabilities HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 21:
   s> Content-Length: *\r\n (glob)
-  s> readline() -> 2:
   s> \r\n
-  s> read(*) -> *: lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$ (glob)
+  s> lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$
   sending listkeys command
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> vary: X-HgArg-1,X-HgProto-1\r\n
@@ -208,19 +200,12 @@
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
@@ -235,28 +220,20 @@
   > x-hgarg-1: namespace=namespaces
   > EOF
   using raw connection to peer
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> user-agent: mercurial/proto-1.0 (Mercurial 42)\r\n (glob)
   s> x-hgarg-1: namespace=namespaces\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -760,7 +760,8 @@
 return makeloggingfileobject(observer.fh, res, observer.name,
  reads=observer.reads,
  writes=observer.writes,
- logdata=observer.logdata)
+ logdata=observer.logdata,
+ logdataapis=observer.logdataapis)
 
 def recv(self, *args, **kwargs):
 return object.__getattribute__(self, r'_observedcall')(
@@ -823,26 +824,34 @@
 class baseproxyobserver(object):
 def _writedata(self, data):
 if not self.logdata:
-self.fh.write('\n')
+if self.logdataapis:
+self.fh.write('\n')
 return
 
 # Simple case writes all data on a single line.
 if b'\n' not in data:
-self.fh.write(': %s\n' % escapedata(data))
+if self.logdataapis:
+self.fh.write(': %s\n' % escapedata(data))
+else:
+self.fh.write('%s> %s\n' % (self.name, escapedata(data)))
 return
 
 # Data with newlines is written to multiple lines.
-self.fh.write(':\n')
+if self.logdataapis:
+self.fh.write(':\n')
+
 lines = data.splitlines(True)
 for line in lines:
 self.fh.write('%s> %s\n' % (self.name, 

D2842: util: don't log low-level I/O calls for HTTP peer

2018-03-13 Thread indygreg (Gregory Szorc)
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  `hg debugwireproto` is useful for testing HTTP interactions. Possibly
  more useful than `get-with-headers.py`. But one thing that makes it
  annoying for mid-level tests is that it logs all API calls, such
  as readline(). This makes output - especially headers - overly
  verbose.
  
  This commit teaches our file and socket observers to not log API
  calls on functions dealing with data.
  
  We change the behavior of `hg debugwireproto` to enable this mode
  by default. --debug can be added to restore the previous behavior.
  
  As the test changes demonstrate, this makes tests much easier to
  read. As a bonus, it also removes some required (glob) over lengths
  in system call results.
  
  One thing that's lacking is knowing which side sent data. But we can
  fix this in a follow-up once it becomes a problem.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2842

AFFECTED FILES
  mercurial/debugcommands.py
  mercurial/util.py
  tests/test-http-protocol.t

CHANGE DETAILS

diff --git a/tests/test-http-protocol.t b/tests/test-http-protocol.t
--- a/tests/test-http-protocol.t
+++ b/tests/test-http-protocol.t
@@ -175,29 +175,21 @@
   > command listkeys
   > namespace namespaces
   > EOF
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=capabilities HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 21:
   s> Content-Length: *\r\n (glob)
-  s> readline() -> 2:
   s> \r\n
-  s> read(*) -> *: lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$ (glob)
+  s> lookup branchmap pushkey known getbundle unbundlehash batch 
changegroupsubset streamreqs=generaldelta,revlogv1 $USUAL_BUNDLE2_CAPS_SERVER$ 
unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx 
compression=$BUNDLE2_COMPRESSIONS$
   sending listkeys command
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> vary: X-HgArg-1,X-HgProto-1\r\n
@@ -208,19 +200,12 @@
   s> user-agent: mercurial/proto-1.0 (Mercurial *)\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
@@ -235,28 +220,20 @@
   > x-hgarg-1: namespace=namespaces
   > EOF
   using raw connection to peer
-  s> sendall(*, 0): (glob)
   s> GET /?cmd=listkeys HTTP/1.1\r\n
   s> Accept-Encoding: identity\r\n
   s> accept: application/mercurial-0.1\r\n
   s> user-agent: mercurial/proto-1.0 (Mercurial 42)\r\n (glob)
   s> x-hgarg-1: namespace=namespaces\r\n
   s> host: $LOCALIP:$HGPORT\r\n (glob)
   s> \r\n
   s> makefile('rb', None)
-  s> readline() -> 36:
   s> HTTP/1.1 200 Script output follows\r\n
-  s> readline() -> 28:
   s> Server: testing stub value\r\n
-  s> readline() -> *: (glob)
   s> Date: $HTTP_DATE$\r\n
-  s> readline() -> 41:
   s> Content-Type: application/mercurial-0.1\r\n
-  s> readline() -> 20:
   s> Content-Length: 30\r\n
-  s> readline() -> 2:
   s> \r\n
-  s> read(30) -> 30:
   s> bookmarks \n
   s> namespaces\n
   s> phases
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -755,7 +755,8 @@
 return makeloggingfileobject(observer.fh, res, observer.name,
  reads=observer.reads,
  writes=observer.writes,
- logdata=observer.logdata)
+ logdata=observer.logdata,
+ logdataapis=observer.logdataapis)
 
 def recv(self, *args, **kwargs):
 return object.__getattribute__(self, r'_observedcall')(
@@ -818,26 +819,34 @@
 class