Linux上の複数のファイルペアの視覚的な差分


4

Linux(Ubuntu Karmic)のtkdiffのようなGUIプログラムが必要です。2つのファイルを並べて表示し、異なる行を強調表示できます。コマンドラインで複数のファイルペアを受け入れますが、キーを押して、次または前のファイルペアにジャンプできます。これに最適なプログラムはどれですか?

私が試したtkdiffをしてメルドが、コマンドライン上でこれらのために2つの以上のファイルを指定することは不可能であると思われます。


3
tkdiff(3.x)の古いバージョンにはこの機能があり、新しいバージョン(4.x)にはないと思います。

回答:


2

TkDiffのマルチペアdiffとも戦っています。これまでのところ、私は非常に役に立たなかった:

Error: you specified 6 file(s) and 0 revision(s)

...しかし、ここに私の経験といくつかのメモを追加します。

ここで働いているPerforceはすでに私にとって正しいことをしています。

以下psは、Perforceのマルチペアdiffが正常に機能していることを示しています(すべての個別のargvアイテムを独自の行に移動しました)。

wish
/tools/eng/perforce/tkdiff.tcl
--
:
/tmp/g4-60077/cache/depot/path/to/file1#740
/home/douglasdd/work/src1/path/to/file1
:
/tmp/g4-60077/cache/depot/path/to/file2#15
/home/douglasdd/work/src1/path/to/file2

このことから、上記のレオンの答えに欠けているのは、最初のファイルペアの前にある「-」と「:」であると推測しています。しかし、これでは十分ではありません。

TkDiffのperforceバージョンは古い(3.0x)ので、ローカルにインストールされた4.1.xバージョンを使用しようとしています。しかし、これまでのところ運はありません...

これを手動で実行すると:

wish /tools/eng/perforce/tkdiff.tcl -- : "/tmp/g4-60077/cache/depot/path/to/file1#740" /home/douglasdd/work/src1/path/to/file1 : "/tmp/g4-60077/cache/depot/path/to/file2#15" /home/douglasdd/work/src1/path/to/file2

ただし、これを手動で実行すると失敗します。

wish /usr/local/bin/tkdiff -- : "/tmp/g4-60077/cache/depot/path/to/file1#740" /home/douglasdd/work/src1/path/to/file1 : "/tmp/g4-60077/cache/depot/path/to/file2#15" /home/douglasdd/work/src1/path/to/file2

...恐ろしい:

Error: you specified 6 file(s) and 0 revision(s)

おそらくPerforceが独自のカスタムハッキングバージョンのTkDiffを持っているのではないかと思います。

申し訳ありませんが、これはあまり役に立ちません。


1

比較する、すなわち、異なるディレクトリに同じ名前を持つように比較するファイルの手配してみfoo/file1bar/file1foo/file2bar/file2あなたはシンボリックリンクを使用することができるなど、。次に、ディレクトリの比較を理解するdiffツールを使用します。Emacsはそのようなツールの1つです(メニュー「ツール/比較/ 2つのディレクトリ」またはM-x ediff-directories)。


この回避策を提案していただきありがとうございます。ただし、複数ファイルの比較を行うためだけに、一時ファイル(またはシンボリックリンク)およびディレクトリの作成を回避する、より簡単なソリューションを引き続き探しています。
pts

0

私はkdiff3が好きで、2つまたは3つのファイルを実行でき、ディレクトリを比較できます。


これは私の質問に答えません。多くのdiffツールは2つまたは3つのファイルを比較できます。コマンドラインで指定できる複数のファイルペアを比較できるdiffツールに興味があります。
pts

申し訳ありませんが、私はこれを行う任意のツールを知らない- kdiffまたはそれに渡されたファイルの各ペアについても同様に呼び出す小さなスクリプトを記述することは簡単だろう
アダム・バトラー

1
2番目の提案(kdiffを複数回呼び出すシェルスクリプト)を思いついてくれてありがとう。しかし、それでも私の質問には答えられません。私の質問では、プログラムが「キーを押すことで次または前のファイルペアにジャンプする」という要件を明示的に指定しています。
pts

0

私の要件に合ったツールを誰も提案できないので、おそらくないでしょう。


0

tkdiffのドキュメント化は非常に不十分ですが、ファイルのペアをコロンで区切ると、望む差分が得られるようです。例えば

tkdiff a.1 a.2 : b.1 b.2 : c.1 c.2

これは、tkdiff 4.1.4では動作しません、私はあなたが5ファイル(複数可)と0リビジョン(複数可)を指定し、 `取得
PTS

-1

meldは、さまざまなファイルやディレクトリ構造を比較するための非常に優れたユーティリティです。

複数のファイルを比較するには:

meld $file1 $file2 $file3

2つの異なるディレクトリを比較するには:

meld $dir1 $dir2

助けてくれてありがとう。これが私の質問にどのように答えるかはわかりません。具体的には、meldに複数のファイルペアを指定するにはどうすればよいですか?
pts
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.