Hi, the last thing to do with merge-recursive to speed it up, would be to avoid reading/writing the cache all the time. Unfortunately, builtin-read-tree.c grew into a pretty big monster, with so many different options which completely change behaviour. So, how should I go about it? Should I make a struct a la diff_options to hold the options to unpack_trees? Where should it go? I also played a little with git-merge-tree, because it seems so much simpler and easier to refactor. But there is a problem: Either I call it the wrong way, or it does not yet work correctly: I tried git-merge-tree $(git-merge-base branch1 branch2) branch1 branch2 with what is in 'next'. But it only showed the _new_ files, not the modified ones. Help, please? Ciao, Dscho - : 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