cmdserver: write the hello message as one chunk on the 'o' channel
This is a guaranteed by the protocol: clients know they need to read one chunk
off of the 'o' channel and treat that as the hello message.
They should ignore fields they don't recognize so they stay compatible with
new versions of the server in case we decide to add something.
--- a/mercurial/commandserver.py Fri Jun 24 01:10:35 2011 +0200
+++ b/mercurial/commandserver.py Wed Jun 22 17:13:04 2011 +0300
@@ -205,8 +205,12 @@
'getencoding' : getencoding}
def serve(self):
- self.cout.write('capabilities: %s' % ' '.join(self.capabilities.keys()))
- self.cout.write('encoding: %s' % encoding.encoding)
+ hellomsg = 'capabilities: ' + ' '.join(self.capabilities.keys())
+ hellomsg += '\n'
+ hellomsg += 'encoding: ' + encoding.encoding
+
+ # write the hello msg in -one- chunk
+ self.cout.write(hellomsg)
try:
while self.serveone():