Many commands such as git-receive-packs do not fit the
'run and get all output' model that it is offered through the
Python's Popen.communicate() API.
Such commands exchange messages with the remote side via stdin/stdout
alternatively depending on each other's output.
This commit should allow any command to run in this otherwise very neat server.
The rewrite of the process model was necessary in order to be able to use it
as git remote ssh server for testing gi interactions involving key handling, timeouts etc...
Many commands such as git-receive-packs do not fit the 'run and get all output' model that it is offered through the Python's
Popen.communicate()
API. Such commands exchange messages with the remote side via stdin/stdout alternatively depending on each other's output.This commit should allow any command to run in this otherwise very neat server. The rewrite of the process model was necessary in order to be able to use it as git remote ssh server for testing gi interactions involving key handling, timeouts etc...