The work around that comes to mind is rsync and a wrapper that logs into a system that can run git and updates to the right version before the rsync. rsync will take an argument (-e) to log into the remote system and spawn rsync in daemon mode, and it's possible to use this to invoke a wrapper that logs into the remote system, does some prep, then spawns rsync in daemon mode. (--rsync-path is another means of inserting such a wrapper.) It'll be slightly fiddly to work out the right details, but once it's done it should be look after itself (assuming enough space on the proxy system to pull the whole git tree and keep it up to date). (And of course rsync should be at least as bandwidth efficient as CVS.)