From: Jacob Keller Date: Fri, 17 Jul 2015 04:23:54 GMT Subject: Re: GNU diff and git diff - difference on myers algorithm? Message-ID: In-Reply-To: On Thu, Jul 16, 2015 at 9:22 PM, Jacob Keller wrote: > On Thu, Jul 16, 2015 at 12:07 PM, Luis R. Rodriguez > wrote: >> On Fri, Jun 12, 2015 at 11:52 AM, Luis R. Rodriguez >> wrote: >>> OK wells I'm curious about more research / effort when trying to >>> evaluate a diff with two seprate but adjoining preprocessor directives >>> and if anyone has implemented an optimizaiton option to let the diff >>> generator join them. >>> >>> For example, to let it infer that: >>> >>> --- a/test.c >>> +++ b/test.c >>> @@ -10,8 +10,6 @@ int main(int argc, char *argv[]) >>> >>> #ifdef FOO >>> a = 4; >>> -#endif /* FOO */ >>> -#ifdef FOO >>> a = 5; >>> #endif /* FOO */ >>> >>> is possible. >> >> Anyone familiar if any tool exists today that would optimize this? Is >> anyone working on it? Would git be a good place for such a thing? I'd >> consider it as an option to optimize a diff. This for example is >> extremely useful for us working with Coccinelle where we have a tool >> writing code for us, while such an optimization might be useful to >> Coccinelle it would seem like a rather generic feature, its just not >> clear to me where to give such a tool a proper home. >> >> Luis > > I do not understand exactly what would be optimized in this case? > > In any regards, that's not a diff transformation, that is a code > transformation, and I would suggest starting with Coccinelle and > seeing if you can get that to do what you want. > http://coccinelle.lip6.fr/ > > Regards, > Jake I misread your comment. Coccinelle is a tool that could probably be coerced into doing this, but this is not a diff optimization unless I am completely understanding it. This is a code transformation concept, and doesn't have much to do with finding differences or code changes. My above comment is correct, but I don't think this belongs in diff parsing, but rather as part of something like Coccinelle Regards, Jake