I believe that for dumb transports (http?), this causes submodule checkouts to fail on targets. This can be fixed by running
cd .git/modules/<modulename> && git update-server-info
whenever git-deploy start is called.
I see that the trigger-submodule-update might be an attempt to do this, but I'm not sure how open('.git', 'r') will ever succeed, since .git is a directory. Doing so for me gives IOError: [Errno 21] Is a directory: '.git'.
Should this util be fixed, and should it also always be called for every submodule upon git-deploy start?