
"Alan Knight"<knight@acm.org> wrote:
Which parts of this are real changes and which are just because somebody felt it was important to reformat everything? :-)
Reformatting is relatively easy, but it would be really nice if the tooling could identify (at least some) refactoring too. Best I've seen so far is barely identifying simple method renames, I'm fairly confident we could do better than that. On top of that most tools make it difficult to compare bits of code that don't reside in the exact same method. The fact of life is that code moves around as responsibilities get reallocated. A good merge tool should let me compare arbitrary bits of changes with ease. As it is the "art of merging" is primarily being able to pick out slightest differences by simply eyeballing chunks of code yourself. It seems that merge tools assume that the person merging is the one who wrote the change, that is often not the case. It's great that the obvious stuff can be merged automatically nowadays, but any non-trivial merge case requires actual understanding of the change.