On Tue, Mar 8, 2016 at 7:14 PM, Jeff King <peff@xxxxxxxx> wrote: > ... > > So I think the solution to both is that we need to do a _separate_ > traversal with all of the positive tips we're going to send, and the > parents of any shallow commits the client has, to find their fork points > (i.e., merge bases). And then we add those fork points to the shallow > list (grafting out their parents), and communicate them to the client to > add to its shallow setup. Good news. We have the mechanism in place, I think. get_shallow_commits_by_rev_list() (from 'pu') will produce the right shallow points for sending back to the client if you pass "--not <current shallow points>" to it. It's meant to be used for --shallow-exclude and --shallow-since, but if neither is given (nor --depth) I guess we can run it with current shallow points. I wonder if we can detect some common cases and avoid commit traversing this way though. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html