Subject: [PATCH 0/4] git-http-push improvements

From: Nick Hengeveld <[email-masked]>
Date: Fri, 4 Nov 2005 14:22:10 -0800

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.