GumTreeDiff / gumtree

An awesome code differencing tool
https://github.com/GumTreeDiff/gumtree/wiki
GNU Lesser General Public License v3.0
933 stars 174 forks source link

C++ Spurious Moves, Adds and Deletes #248

Closed csiefer2 closed 12 months ago

csiefer2 commented 3 years ago

Using gumtree webdiff -m gumtree-simple, -m gumtree-hybrid, or no -m, generates spurious add/deletes as well as spurious moves on the attached C++ header files. gumtree htmldiff has similar pathologies.

bugreport.zip

jrfaller commented 3 years ago

OK this one is weird. They were some missing information in the AST that I gathered in the few last commits. However the file remains unadequately handled by the algorithms. I have to dig though the algorithms to understand if it's possible to do better :)

zxylz commented 2 years ago

I also use -m gumtree-simple and -m gumtree-hybrid.But I don't know what they mean. Where can I find explanations for these two options?

jrfaller commented 2 years ago

There are none at the moment, although I am trying to put an article together explaining them, but it keeps getting delayed because I prioritize new topics. In short they are faster algorithms than the default one, with a comparable accuracy.

jrfaller commented 12 months ago

Fixed using the simple heuristic