Вы можете использовать нашу SmartDifferencer программу.Он сравнивает два файла кода, анализируя их с помощью реального синтаксического анализатора (делая его полностью независимым от форматирования и размещения или изменений в комментариях), сравнивая деревья синтаксиса и затем сообщая об изменениях с точки зрения действий редактирования (копировать, перемещать, вставлять, расширять)переменная внутри блока), объясняющая, что произошло.Таким образом, вы видите различия в терминах языковых структур вместо линий, что часто дает гораздо меньшие результаты сравнения.Он даже игнорирует изменения в основаниях числа и экранировании строк, если фактические значения литералов совпадают.
Для таких языков, как C # и Java, это работает очень хорошо.C немного более проблематичен, так как люди пишут оскорбительный код C, который не может быть проанализирован без знания всех определений и #include и т. Д. Таким образом, он не будет обрабатывать некоторые файлы, и вы воспользуетесь обычным diff, возможно, дополненнымформаттер, как предложил другой автор, но он все равно даст вам только различия в строках.C ++, возможно, имеет те же проблемы, что и C, но на практике код C ++ не так оскорбителен.