タグ

diffに関するMonMonMonのブックマーク (6)

  • ターミナルの diff で、github のように、行の中で具体的に差分がある部分に色付けをしたい

    github の PR の diff 表示では、行ごとの diff に加えて、行中のどこの部分に差異があるのかを表示してくれます。例えば linux の PR から適当に拾ってきたこのページ などが具体例です。 今、コマンドライン上の diff においても、このように色付けができたら便利だろうと思い、その方法を探しています。 diff に色を付けようとして、見つかったパッケージは、 colordiff というツール で、これを使うと、例えば + の行は緑色、-の行は赤色といったように、行ごとに色を付与してくれますが、最終的に実現したい github 的な diff の再現において、「行中の差異の部分の表示」はやってくれていないな、と思っています。 質問 github の PR ページの diff のように、行中の差異の部分まで色わけしてくれるような diff を、ターミナル上で実現したいの

    ターミナルの diff で、github のように、行の中で具体的に差分がある部分に色付けをしたい
  • 人生を豊かにする文字列diff入門 | フューチャー技術ブログ

    春の入門祭りの8日目です。 文字列の新旧の違いを表現する時によくdiffをとるとか言いますよね。そこで実行されるのが差分アルゴリズムです。差分のアルゴリズムって結構知れば知るほど難しいやつです。「より良い差分」という基準が、状況によって変わるからです。ヒューリスティックなやつです。例えば、HTMLの説明の文章を書いていたとします。タイトルをテーブルに書き換えてみたとします。 どちらも間違ってはおらず、この差分を元にパッチを当てたりも可能です。ただ、読んだ時の読みやすさが違います。 これはもちろん前者と答える人の方が多いでしょう。だって、タグという意味の塊が維持されていますからね。 これは究極的にはわかりやすいdiffというのは「意味」を理解しないと作れないということを意味します。これがdiffは簡単なようで難しいと書いた理由です。もちろん、ほどほどの工数で、ほどほどの見た目のdiffも作成

    人生を豊かにする文字列diff入門 | フューチャー技術ブログ
  • Gitはどうやってテキストファイルとバイナリファイルを自動識別しているのか? - Qiita

    tl;dr 先頭 8000 バイト以内に NUL が有ったらバイナリファイル。 Gitの実装 Gitの内蔵diffは FIRST_FEW_BYTES だけ検索するようになっている。 https://github.com/git/git/blob/6e0cc6776106079ed4efa0cc9abace4107657abf/xdiff-interface.c#L187 #define FIRST_FEW_BYTES 8000 int buffer_is_binary(const char *ptr, unsigned long size) { if (FIRST_FEW_BYTES < size) size = FIRST_FEW_BYTES; return !!memchr(ptr, 0, size); }

    Gitはどうやってテキストファイルとバイナリファイルを自動識別しているのか? - Qiita
    MonMonMon
    MonMonMon 2019/03/30
    単純だがなるへそ
  • diffコマンドを便利に使う

    configファイル修正したり、ソースをいじった際によくdiffコマンドを使って変更点を確認しますよね。 オプション無しで実行すると見にくいけど、あるオプションを付けてやると gitっぽく出力してくれたり、WinMergeっぽく出力してくれるようになります。 覚えておくと便利なので、ぜひ見ていってください。 オプション無し オプション無しでdiff を叩くと以下のように出力されます。 見にくい・・ 慣れない人が見るとなんじゃこりゃとなりそうですね。 [root@bacchi ~]# diff /etc/ntp.conf.orig /etc/ntp.conf 8,9c8,10 < restrict default kod nomodify notrap nopeer noquery < restrict -6 default kod nomodify notrap nopeer noquer

    diffコマンドを便利に使う
    MonMonMon
    MonMonMon 2018/02/09
    “一番のオススメの-ybBw オプション。 ファイルを左右に出力して、変更を|、追加削除を<>で表します。”
  • Gitコマンドで行単位ではなく文字単位の差分表示を手に入れる - Code Day's Night

    Githubを使っていると、diff表示が行単位ではなく文字単位になってて便利かと思います。手元の端末でも同じようにdiffを文字単位に表示したい時は、diff-highlightというスクリプトを使えばできます。表示は上の画像のようになります。 diff-highlightは、gitの公式リポジトリのcontribディレクトリの中にあって、perlのスクリプトファイルです。 https://github.com/git/git/tree/master/contrib/diff-highlight 一番簡単な設置は、/usr/local/binなどの場所にダウンロードして実行権限を与えればOK。 wget https://raw.githubusercontent.com/git/git/master/contrib/diff-highlight/diff-highlight chmod

    Gitコマンドで行単位ではなく文字単位の差分表示を手に入れる - Code Day's Night
  • https://qiita.com/BeatsMe1978/items/c322de69758dcef0788f

  • 1