On Sat, 12 Oct 2013, Duy Nguyen wrote: > Hi, > > Just wondering if this has been considered and dropped before. > Currently we use try_delta() for every object including trees. But > trees are special. All tree entries must be unique and sorted. That > helps simplify diff algorithm, as demonstrated by diff_tree() and > pv4_encode_tree(). A quick and dirty test with test-delta shows that > tree_diff only needs half the time of diff_delta(). As trees account > for like half the objects in a repo, speeding up delta search might > help performance, I think. Fortaking advantage of the sorted nature of tree objects, you need to actually parse those objects to determine tree entry boundaries. The delta diff code doesn't parse anything and simply do a search into a binary buffer which may or may not end up slicing that buffer on actual tree entry boundaries. So this could help somewhat, however the need for pre-parsing those tree objects is probably going to counter-balance all the performance gain you might get. I think the potential for improvements would be greater by moving to pack v4 (when the right algorithm is in place that is). Eventually the proper pack v4 tree delta diffing code could be made to serve the pack v2 case as well. Nicolas -- 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