cmdserver: write the hello message as one chunk on the 'o' channel stable
authorIdan Kamara <idankk86@gmail.com>
Wed, 22 Jun 2011 17:13:04 +0300
branchstable
changeset 14719 c19de7f32961
parent 14718 0c81948636f3
child 14720 36283a7b6856
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.
mercurial/commandserver.py
--- 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():