WinMerge を使用しているときに、ファイルの残りの部分が比較で同期されない関数にコード ブロックが挿入されているファイルを見ています。私のものははるかに複雑ですが、基本的には以下の単純な例と同じです:
FILE 1 FILE 2
1 int main() { int main() {
2
3 int a = 3; int a = 3;
4 a += 5; for(int i = 0; i < a; ++a)
5 } a += i;
6
7 a += 5;
8 }
WinMerge は、for ループを挿入されたブロックとして認識し、ファイルの残りの部分を同じように表示する代わりに、4、5、6、7、8 行目の違いを示します。ファイル 1 の 4 行目からファイル 2 の 7 行目を同期し、よりクリーンな差分にすることを期待しています。これには設定がありますか?「Moved Code Block」設定で遊んでみましたが、ファイル内の後で一致するコード ブロックを並べるのではなく強調表示するだけです。
助言がありますか?