Ok, here's the patch I sent out earlier, except now it's been split up into a series fo five patches (and has some trivial one-liner cleanups here and there, mainly to shrink the patches a bit) It's a series of five patches: - Add 'df_name_compare()' helper function - Make 'traverse_tree()' use linked structure rather than 'const char *base' - Add return value to 'traverse_tree()' callback - Make 'traverse_trees()' traverse conflicting DF entries in parallel - Move 'unpack_trees()' over to 'traverse_trees()' interface with a more lines added than removed: cache.h | 1 + merge-tree.c | 58 ++++--- read-cache.c | 35 ++++ tree-walk.c | 59 ++++++- tree-walk.h | 23 ++- unpack-trees.c | 530 ++++++++++++++++++++++++++------------------------------ 6 files changed, 387 insertions(+), 319 deletions(-) but especially in this new split-up format, it's now more possible to see how the last patch actually simplifies things. -- 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