2011-01-01 5 views
7

私はプロジェクトでファイルをリファクタリングしていましたが、変更の一部として関数をより論理的な方法で並べ替えました。しかし、私が自分の変更を見直そうとしている今、私は混乱します。diffアプリケーションは、関数が単に並べ替えられ、ファイルの内容の80%が変更されたことを認識しません。ファイル内の関数が並べ替えられている場合、アプリケーションが狂っています。

私は、 "Beyond Compare"と "WinMerge"の両方のdiffを同じ結果に見ようとしました。 ここで私を助けるいくつかの設定がありますか?

タグ付けされているように、私はWindowsでC#を使用しています。

+2

空白を無視するオプションはありますか?タブとスペースの差があるかもしれません。 –

+3

リオーダー機能のみを使用してリファクタリングを開始した場合(つまり、実際の変更がない場合)は、変更を確実に行う必要があります。 –

+0

@Alex:はい、ありますが、それは助けにはならないようです。 – VitalyB

答えて

3

BeyondCompare(とおそらく他のツールも同様です)には、行を選択して、参照として使用する他のファイルの行を選択できる機能があります。そうすれば、少なくともそれぞれの方法を1つずつ比較することができます。あなたが持っている方法の数に応じて、これはオプションかもしれません。しかし、まだ手作業で、面倒な作業が必要です。

他の方法は、何も変更せずにチェックインするだけでメソッドを再配置することです。次に、再配置されたクラスを取得したら、各メソッド内で行った変更にdiffツールを使用できます。

+0

良い点@行参照。ありがとう! – VitalyB

1

必要なものは、コード構造(式、ステートメント、宣言、関数)とその操作の種類(挿入、削除、移動、コピー、コピーと名前の変更など)を理解するツールです。あなたが "コードの動き"の束をやったような音。 定義によるテキスト差分プログラムはこれを行うことができません。

Smart Differencerは、C#、C++、COBOL、Java、PHPなど多くの言語でこれを実行できます。 言語構造の相違点を報告し、行/列に正確です。

+0

あなたのサイトは価格情報を記載していないようです。 –

+0

ダウンロードリンクは表示されません... – VitalyB

+0

@Joe White:サイトプルダウンメニューから簡単に見つかる価格設定ページです。 Smart Differencerの価格設定に関する価格設定ページには*不具合がありました。それは今修正されました。 –

2

従来のテキストの違いは、テキストコンテンツのみに基づいています。このため、変更されたファイルの内容の80%が表示されます。

Plastic SCMは、XDiffと呼ばれるスマート差分器を有する。移動したコードまたはリファクタリングしたコードの違いを見つけることができます。 XDiffの詳細については、this postをご覧ください。 mergeもサポートしています。

Plastic SCMは、完全なSCMソリューションです。それをインストールし、差分/マージツールのみを使用することができます。

+0

私はPlastic SCMをインストールしましたが、あなたが言及した "XDiff"バイナリは表示されません。おそらく "binmergetool.exe"を意味しますか? – VitalyB

+0

@VitalyB:差分/マージツールはmergetool.exeです。 XDiffは機能にすぎません。それを起動し、手動でファイルを選択することができます。しかし、プロセスを自動化することもできます。これは、2つの引数(左右のファイル)を渡すとdiffツールとして機能し、4つの引数(ソース、宛先、ベース、結果ファイル)を渡すとマージツールとして機能します。 binmergetool.exeはバイナリマージツールです。イメージとバイナリファイルの差分/マージを管理するために使用されます。 –

+0

ああ。とった。やってみます。ありがとう! – VitalyB

関連する問題