The updated pack-object series is now in "next" branch, and seems to be cooking nicely. The "reuse from existing pack" change seems to be a huge win and I haven't found problems in there.
There now is further performance improvements for git-send-pack to avoid sending a huge blob or tree object in its full representation when we know the other end has a suitable object to use as the base; instead we can just send it out deltified. The other end would expand it to a loose object and this would not make abit of difference in the resulting repository -- only the bandwidth requirement reduction is visible [*1*].
In principle, this is also applicable for fetch-pack, but it involves a bit of pack protocol change. The protocol extension mechanism was done nicely by Johannes a while ago, and we can use it to implement this with full backward compatibility.
After a bit more testing, we might want to make --thin transfer the default (even without an option to turn it off -- I just do not see a point not to use it if it is bug-free).
* The 'master' branch has these since the last announcement.
Junio C Hamano:
fmt-merge-msg: say which branch things were merged into unless 'master'
Allow git-mv to accept ./ in paths.
Documentation: fix typo in rev-parse --short option description.
fmt-merge-msg: do not add excess newline at the end.
Merge branch 'jc/mv'
Merge branch 'jc/merge-msg'* The 'next' branch, in addition, has these.
Johannes Schindelin:
Fixes for ancient versions of GNU make
avoid makefile override warning
Really honour NO_PYTHONJunio C Hamano:
Merge branch 'jc/merge-msg' into next
Merge branch 'js/portable' into next
rev-list --objects-edge
Merge branch 'jc/rev-list' into next
Thin pack - create packfile with missing delta base.
send-pack --thin: use "thin pack" delta transfer.
Merge branch 'jc/pack-thin' into next[Footnote]
*1* The version of the patch I earlier sent to the list had a grave performance bug; please do not use it. The one in "next" branch has the bug fixed already.