On Tue, Jun 4, 2013 at 10:46 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > OK. Thanks. > > I think the logic would be more like: > > 1. Start from xscr, find the first xchp that is !xchp->ignore; > if there is none, we are done. There is no more to show. > > 2. Remember the xchp as the beginning. > > 3. Tangle ->next pointer to find the next xch that is !xch->ignore; > if there is none, we are also done. xdchanges between the > beginning you remembered in the step 2. and your current xchp > are the only things we want to show. > > 4. Measure the distance between the end of xchp and the beginning > of xch. > > - If it is larger than max_common, xdchanges between the > beginning you remembered in the step 2. and your current xchp > are the only things we want to show. The next iteration will > start by skipping the blank-only changes between xchp and xch. > > - If it is short enough, assign xchp = xch and go back to 3. to > find more interesting hunks (that is why we remembered the > real "beginning" in step 2.). Yeah, I'm doing something pretty much like that right now (though I will have to eventually sleep). I decided that it would indeed be easier to split the logic rather than do everything in one loop. Thanks for the help ! -- 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