web-dev-qa-db-ja.com

Linux用のビジュアルパッチツール

ファイルとそのパッチがあります。パッチを視覚的に適用したいのですが、t.i。パッチによって提案された変更がコンテキストでどのように見えるかを確認し、いくつかの修正を行い、結果のファイルを保存します。

それを行うことができるツールは何ですか?

視覚的なdiffツール(つまり、meld、diffuse、diffmerge)のどちらも、私が望むことを実行しません。それらは、パッチでは機能せず、ファイル全体をマージするだけです。

37

私はKompareが本当に好きです。これは、diffの(非常に良い)グラフィカルインターフェイスにすぎません。

http://www.caffeinated.me.uk/kompare/

Sudo apt-get install kompare

パッチの作成と適用

Kompareは、比較された2つのテキストファイルAとBの違いのみをリストするパッチファイルを作成できます。さらに、Kompareは、この方法で作成されたパッチファイルを元のファイルAに適用し、このようにして、内容を再計算できます。対応するファイルB.これは、同じファイルの古いバージョンを既に持っている友人にファイルの修正バージョンを渡すための快適なユーティリティです。元のファイルにパッチを適用して修正されたファイル。

Kompareは、コマンドラインインターフェイスのdiffユーティリティによって生成または適用されたパッチファイルと互換性があります。これは、Kompareが実際には、diffのグラフィカルなフロントエンドであり、パッチは、Kompareによって呼び出されるパッチによって作成および適用されるためです。 。

24
initzero

vimdiffをdiffファイルで使用する を参照してください。

gvim original.file + 'vert diffpa the.patch'

これにより、GVimが開き、ウィンドウが分割されます。左側がオリジナル、右側がパッチです。その後、ハンクを追加、削除、または変更して、変更を保存できます。 (まあ、new.patchdiffをもう一度実行する必要がありますが、それは難しくありません。)

15
ephemient

emacs ediffモード を使用できます。これにより、各チャンクをインタラクティブに表示して検証できます。価値があるのは、この便利なスクリプトが〜/ binディレクトリにあることです。

#!/bin/bash
if [ "$1" == "--text" ] ; then shift; fi
if diff --brief $1 $2 ; then 
exit 0 
else
emacs -fn 8x13bold --eval '(ediff-files "'$1'" "'$2'")'
fi
7
Pascal Cuoq

別のオプション:Eclipseを使用する場合、視覚的にパッチを生成して適用できます。

4
gorlok

ビジュアル差分ツールのアイデアは、次のことができるということです。

  1. パッチを適用したファイルのバックアップコピーを作成(またはツリー全体の新しい初期のチェックアウト)
  2. パッチを適用する
  3. 視覚的な差分ツールを使用して、状況の変化を確認する
  4. ビジュアル差分ツール内で、パッチを適用したファイルに必要な変更を加えます。

Meldやdiffuseなどの一部のツールは、以前にコミットされたバージョンのファイルと自動的に比較します。

重要な洞察は、パッチを適用できること、バックアップコピーがある場合、またはクリーンチェックアウトで作業している場合に、不要なものはすべて破棄されることです。

統一されたdiffの読み取りと変更がより快適で、diffのコンテキストを増やしたい場合、emacsにはかなりユニークな機能があります next-error-follow-mode ファイル(差分メジャーモード)。これは、ターゲットファイルのdiff行のコンテキストを示しています。

1
ddaa

通常は GitExtensions (.NETおよびMono)を使用します。これは、パッチのインタラクティブな適用もサポートしています。 gitに既に慣れているといいのですが。

編集:この行の下に記載されているすべてのものは、KDiff3で直接使用できるようには見えません。そして、前に述べたように、私はまだ試していません。

GitExtensionは通常、パッチを表示できる差分ツールとしてKDiff3を使用します。

http://kdiff3.sourceforge.net/doc/kpart.html

それをパッチに使用すると、2つのウィンドウビュー(編集)のみがあり、マージをサポートしません:(しかし、完全なフォルダーなどの3ウェイ差分もサポートします。

実際、私はパッチでそれを試したことはありません。

1

Kompare(KDEがお好みならかなりいいソフトウェア)のプラットフォームでは、Eclipseが優れたオプションであることに同意します。

私は一貫してEclipseの使用に消極的であり、ツールがいかにうまく機能するかに一貫して感心しています(プラットフォームが最終的に起動した後)。

Fedoraでは、メインバージョンコントロールエンジン(SVN-Windowsマシン、Mercurial、gitなどにもサービスを提供します)のそれぞれについて、ほぼすべてのフロントエンドをインストールしています。 Meldは非常に優れています(ただし、パッチインターフェイスはありません)。水没もうまくいきます。しかし、Eclipseはパッチを適用する方法を知っているので、自分の作業コピーを含むフォルダーにプロジェクトを作成することがわかったら、それ自体が作成された作業コピープロジェクトは、私のお気に入りのSVNフロントエンドになる可能性があります。

1
Barton

xxdiff はあなたが探していることをしますか?

0
hillu