On Fri, 15 Apr 2005, Junio C Hamano wrote: > > I was looking at merge-tree.c last night to add recursive > behaviour (my favorite these days ;-) to it [*1*]. > > But then I started thinking.
Always good. > LT> ... For each entry in the directory it says either > LT> select <mode> <sha1> path > LT> or > LT> merge <mode>-><mode>,<mode> <sha1>-><sha1>,<sha1> path > LT> depending on whether it could directly select the right object or not. > > Given that the case you are primarily interested in is the one > that affects only small parts of a huge tree (i.e. common kernel > merge pattern I understand from your previous messages), your > "hacky version" [*2*], extended for recursive operation, would > spit out 98% select and 2% merge, and probably the origin of > these selects are distributed across ancestor=90%, his=4%, > my=4%, or something similar. Am I misestimating grossly? No. That's _exactly_ right. You do not want a recursive merge-tree. The "diff-tree" thing is different, exactly because it prunes out all the differences early on. > I am thinking about: > > - adding recursive behaviour (I am almost done with this); I think your suggestion sounds perfectly reasonable. Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html