C# をうまく処理できる優れたファイル比較ユーティリティをお勧めできますか。WinMerge、BeyondCompare、KDiff の両方を試しましたが、十分ではありません。たとえば、同じ名前の関数がファイルの異なる領域に配置されている場合、それらは違いとして表示されます。
5 に答える
現時点 (2015 年 4 月) では、C# コード ファイルの構造を考慮して高度な差分を作成し、コード ファイル間でマージする商用比較ツールが少なくとも 3 つあります。
- コードソフトウェアコード比較++
- Devart コード比較
- セマンティック マージ
これら 3 つのツールは、有料版 (または試用期間) でのみ、この種の高度な比較をサポートしています。私の知る限り、これを行うことができる無料のツールはありません。
このタスクにはDevart CodeCompareを使用しています。ネイティブの VS エディターにより、C# と VB をうまく処理できます。彼らはこの機能を「構造比較」と呼んでいます。それはあなたにとって役に立ちます。
[更新 (2015) : この回答を書いて以来、さまざまな言語のコードの構造的および意味的なマージと差分を実行できる最新のツールが増えました。いくつかの例については、 JotaBe の回答を参照してください]
元の回答 (2010) : 残念ながら、それは Diff の性質の一種です。これは常に行ごとの比較であり、言語を意識した比較ではありません。私が知る限り、あなたが求めていることを実行するものは何もありません (ただし、私が間違っている可能性は常にあります)。
比較を行う前に、 regionerateなどのツールを使用してクラス レイアウトを標準化できます。これにより、すべてのメソッドが順序付けられるため、同じ名前のメソッドがファイル内の異なる場所にあるという問題は発生しません。
これを行うテキスト比較ユーティリティを見つけることはないと思います。関数を再編成して、同じ場所に配置することをお勧めします。デザイナーが生成したコードがこれを行うのを見たことがあります (つまり、ファイルが再生成されるたびに関数を移動します)。面倒ですが、あなたがそれを回避するつもりはないと思います。BeyondCompare は、最高の比較ユーティリティの 1 つです。