タグ

2021年8月29日のブックマーク (2件)

  • diffの出力形式をちゃんと理解していなかったのでpatchを実装してみた - はこべにっき ♨

    diffはプログラマ七つ道具のひとつというか、よく使うんですが、diffの出力については大体の読み方は理解しているものの、細かなところまでは理解できていませんでした。 なんで、diffの生成した差分出力をオリジナルファイルに適応する、これまたプログラマ七つ道具*1といえそうなpatchを勉強がてら実装してみました。 まず、diffの形式ですが、一般的なunified diffを対象にします。例えば、以下のようなものです。 --- hello1.pl 2007-10-12 04:51:39.000000000 +0900 +++ hello2.pl 2007-10-12 04:52:11.000000000 +0900 @@ -1,5 +1,5 @@ #!/usr/bin/env perl -#hello1.pl +#hello2.pl use strict; use warnings; @

    diffの出力形式をちゃんと理解していなかったのでpatchを実装してみた - はこべにっき ♨
    mizdra
    mizdra 2021/08/29
  • unified 形式パッチの文法について

    パッチファイルの形式にはいくつかあるわけだが, git の diff で使われている形式について,ちょっと調べたのでそのメモ. diff 形式 diff コマンドが吐き出す形式は色々ある.主に以下のものがあるらしい [1] : 通常の形式 差分部分だけを表示する, diff のデフォルトの表示形式 コンテキスト形式 差分部分周辺も含めて,どういう風に変わったかが分かるようになっている,表示形式 side by side 形式 2列で差分を表示する形式 スクリプト形式 ed コマンドなどでそのまま実行すれば,差分を適用できる形式 if-then-else 形式 CPP のマクロで,両方を切り替えられるようにした形式.差分部分を #ifdef で囲って出してくれ,指定したマクロ変数を定義すると古いのに切り替えられる. 色々あるけど,パッチを送信する際よく使用されるのは,プレーンテキストでも差分

    unified 形式パッチの文法について
    mizdra
    mizdra 2021/08/29