Rather nicely done. I see upto 2/6 are identical to what has
sitting in "pu" for the past few days, modulo some indentation?
I wonder how much testing has this series seen, by the way.
Also, I wonder what happens after 5/6 errors out. It dies and
the caller (typically receive-pack) reports it back, which would
fail the push (and does not update the refs). Retrying in such
a case would probably use the same set of refs on both ends,
resulting in exactly the same pack...