IIRC the shallow protocol still does common ancestor negotiation because its useful to limit what we send.  So we should still pass commonBase through to the PackWriter.

In particular the client is very likely to have our current refs, and the objects reachable from those.  If they haven't changed at the boundary, we don't want to resend those blobs.  The only way to avoid that is to pass through commonBase, as those should be part of the commonBase due to the standard have exchange above.