「diff」コマンドを使用して、どうすれば自分の予算を最大限に活用できますか?


9

私はdiff過去にLinux コマンドを使ってみましたが、あまり運も忍耐もありませんでした。私は通常、DiffMergeやKdiffなどのGUIユーティリティを使用することになります。

最近、私はdiffsshを介してリモートシステム上のファイルを比較するために再び使用しようとしましたが、この-y / --side-by-sideオプションは非常に役立つことがわかりましたが、このユーティリティを最大限に活用していないように感じます。

だから私は次のことを達成する方法に興味があります:

  1. 変更を強調表示するか、色分けして出力を読みやすくします
  2. マージ-違いのある行を選択し、変更をファイルの1つに反映します

また、グーグルで良い例を多く見つけていないので、差分を最大限に活用するためのlinux-fuの秘密がある場合は、教えてください。私は主にテキストベースの設定ファイルを比較しますが、どんなトリックやヒントも素晴らしいでしょう。

参考のために -DiffMergeユーティリティでは、色の強調表示で変更を並べて簡単に表示できます。上部のアイコンを使用すると、「すべてを表示」、「違いを表示」、「コンテキストとの違いを表示」のビューを切り替えることができます。コマンドプロンプトでこの機能の一部を気に入っていただけると思います。

ps:非常に便利だと思うもう1つのオプションは--suppress-common-lines、この簡潔で読みやすいブログ投稿で学んだオプションです。


3
私はvimdiffをかなり使用しています。
nicerobot

@nicerobotこれを回答として投稿できます-これは非常に便利で役立つツールです。
rozcietrzewiacz

あなたは、カントその自由.....申し訳ありませんがそれを助けることができませんでした:D
whoamiは

私はEmacsで差分のほとんどを行います。
Gilles 'SO-悪をやめなさい' 11/11/23

@whoami-何?
cwd

回答:


9

特定の順序ではありません:

  • meld 非常に素晴らしいdiffと3者間マージを行うとても素晴らしいdiffプログラムです。
  • git config --global merge.conflictstyle diff3のようなツールで使用するための3者間マージ出力を取得しますmeld
  • wdiffない単語の場合は差分、非常に素晴らしいのwdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
  • diff出力のざらつきを最小限に抑えるために、私は通常--ignore-all-space-w)オプションを使用します
  • diff-ignore-moved-lines*ラベルに記載されていることを行います。
  • difff*特定のフィールドで一致する行のみを比較するために使用できます。

*免責事項:私は作成者であり、CLIおよびGUIの差分とマージを支援するためにこれらを開発しました。


1
私もdiffuseかなり使用します。
Arcege

diff -uもかなり簡単です。
ゲイブ。


3

差分でカラーリングを取得するには、http://colordiff.sourceforge.net/を参照してください。これは、diffのラッパーにすぎず、すべてのコマンドオプションが引き続き機能します。

ubuntuがある場合は、次のように記述します。

    # sudo apt-get install colordiff

ユースケースを満たさないというリスクを冒すのgitは、多くの差分ツールやマージツール(コマンドラインとGUIの両方)とうまく統合できる非常に優れたVCSです。それがオプションであるならば、それを試してください。


1

やってみる sdiff

diffで使用するマージスクリプトを作成するオプション(-eまたは-ed)もあります。ed

sdiffdiffそしてed今まであなたが行くあなたのシェルの一部でなければなりません。

バージョン管理ソフトウェアには、おそらくdiffmergeツールも組み込まれています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.