2011-01-14 8 views
3

私は主な問題が重複するコードであるpythonモジュールをリファクタリングしようとしています。同じファイルの2つのセクションのdiffを表示するのにどのツールを使用できますか?

2つの選択されたセクションの差分を表示するために使用できるツールはありますか?そのため、ほぼ同じコードの違いを確認できますか?

+2

2つの新しいファイルに貼り付けて、meld、kdiff3、さらには古いdiffファイルなどの良いdiffツールを使用するのはどうでしょうか? – sinelaw

答えて

3

私はインターフェイスが素晴らしいとは思わないが、Clone Diggerをチェックしてください。 exampleを参照してください。

Thinking Craftsman's Tool Kit (TC Toolkit)は、重複したコードを簡単に見つけることができますが、適切な視覚化を提供していないようです。

編集:お支払いをご希望の場合は、Atomiqが面白いと思われます。それは、他の1つのファイルから任意にマッチした行を許可するように良い視覚化のための

は、私は、Diffuseといくつかの成功を持っていた: Diffuse

しかし、私は実際にもののために別の名前でファイルをコピーする必要がありましたうまくできた。

1

私はすべてのファイルの差分にExamDiff Proを使用します。グラフィカルなアナライザーです。

http://www.prestosoft.com/edp_examdiffpro.asp

+0

あなたのお勧めのThxですが、これはウィンドウのみです。 – satoru

+0

@ Satoru-san:あなたは質問のタグにWindowsを記述する必要があります.... –

3

私は時折のEmacsを使用する前にこれをやった:

  1. クローン間接バッファ(M-x clone-indirect-buffer)。
  2. 1つのセクションに印を付けて、そのセクションに(C-x n n)を絞り込みます。
  3. 元のバッファに切り替えて、他のセクションに絞り込みます。
  4. バッファおよびそのクローン上でEdiff(M-x ediff-two-buffers)を実行します。

素晴らしい特典は、それらの間にチャンクをマージすることができ、混乱しないことです。

+0

これまでのところ最高のソリューションで、 'Cx 4 c'を' clone-indirect-buffer'に使うことができます –

+0

どうすればいいですか? Vimで同じことは? – satoru

-1

Beyond Compareのテキスト比較には、比較の片側にクリップボードにあるものを置く「クリップボードを開く」コマンドがあります。次に、2番目の関数をコピーしてコマンドを再度使用すると、強調表示された相違点を列挙します。

0

クローンが1つのファイルにしかなく、クローンがどこにあるのかわかっている場合は、クローン検出ツールが過剰に使用されている可能性があります。しかし、クローンを検出してそれらをあなたに直接示すその能力は、あなたが望むものとまったく同じようです。

CloneDRには、Python固有のバージョンがあります。クローンが見つかった場合(同じファイル内であっても)、クローンが孤立して表示され、クローンが含まれている場所を含め、レイアウトだけでなく、その言語(Python)それらがどのように変化するか、正確に変化する。 (私が知っているAtomiqは、まったく同じテキスト行を持つクローンだけを検出します)。

CloneDRはWindows上で正常に動作します。

関連する問題