Atualmente, estou trabalhando em uma ferramenta de geração de código fonte. Para garantir que minhas alterações não apresentem novos bugs, um diff
entre a saída do programa antes e depois das minhas alterações seria teoricamente uma ferramenta valiosa.
No entanto, isso acaba sendo mais difícil do que se imagina, porque a ferramenta gera linhas em que a ordem não importa (como import
instruções, declarações de função, ...) de maneira ordenada de maneira semi-aleatória. Por esse diff
motivo , a saída de é cheia de muitas mudanças que, na verdade, são apenas linhas movidas para outra posição no mesmo arquivo.
Existe uma maneira de fazer com que diff ignore esses movimentos e apenas produza as linhas que foram realmente adicionadas ou removidas?
diff
ferramenta seria capaz de separar movimentos válidos dos inválidos, pois a Ordem das instruções no código é importante e os casos em que isso não é verdade são limitados (importações, declaração de funções e classes, etc.)?