{"thread":{"id":"14370","subject":"clever(er) file merging tools?","startedAt":"2008-07-09T13:16:17Z","lastAt":"2008-07-09T13:16:17Z","messageCount":1,"participants":["Nigel Magnay"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"82719","messageId":"320075ff0807090616s147c805cu82ba8b3d9ba37140@mail.gmail.com","threadId":"14370","inReplyTo":null,"subject":"clever(er) file merging tools?","fromName":"Nigel Magnay","fromEmail":"nigel.magnay@gmail.com","sentAt":"2008-07-09T13:16:17Z","receivedAt":"2008-07-09T13:16:17Z","isPatch":false,"sender":{"key":"nigel.magnay@gmail.com","avatar":"https://gravatar.com/avatar/d85cf38287bef3a8e4fa02358d2756d7589f8676c5eeb881ce2f6d731e4526c3?d=mp&s=160"},"body":"This isn't git-specific, but since git users tend to merge more often\nthere might be some good knowledge here.\n\nMy usual practice in merging is to issue the merge, then use 'git\nmergetool' to cope with conflicts. On my mac, that fires up opendiff,\nwhich does a reasonable (I guess) attempt at unpicking the changes and\nallowing me to choose.\n\nSometimes, however, probably due to complexity, it spits out a huge\nsection of the file as being in conflict. Examining it, I always end\nup getting annoyed, since for a lot of the file, the changes aren't in\nconflict at all - whole (java) functions are in the conflict area\nwhere they're actually the same.\n\nI have wondered if I could pre-filter the sourcecode through something\nlike Jalopy to re-order all the blocks into a common ordering. But I\nalso wondered if there were any merge tools that (say) understand the\nstructure of Java and use it to compare at a method declaration level\nrather than as a big text document? Maybe just opendiff isn't the best\n(though I quite like the interface as it's easy to understand and the\nprice is right...)\n"}]}