[PATCH 0/4] git-http-push improvements
From: Nick Hengeveld <hidden>
Date: 2016-06-15 22:42:10
This series of patches makes HTTP/DAV pushes more stable. Locks are handled much better and are refreshed if they are about to expire, and remote refs with '/' in their names are supported. Items still on my todo list: - Process the server's lock refresh timeout response (currently it assumes that the original lock timeout will continue to work.) - Verify remote commit object if branches are the same (currently it does no verification if the refs point to the same object.) - Clean up temp filenames after failed PUTs (no need to leave them there since you can't resume.) - Either send compressed objects directly rather than uncompressing and recompressing them before sending; or since we have an uncompressed copy, also verify the SHA1 before sending since the remote doesn't verify (and/or consider read after write verification.) - Use a pack to send under what circumstances? Perhaps allow min-pack-size and max-pack-size (more objects == less impact on failed transfer, more transfer overhead.) - Attempt recovery if the remote ref PUT fails? - Test against other DAV servers (I've currently tested it using only Apache.) -- For a successful technology, reality must take precedence over public relations, for nature cannot be fooled.