diffコマンドとpatch(パッチ)の適応
- Sun
- 23:15
- シェルスクリプト
diffコマンドとpatch(パッチ)の適応についてのメモ。
マスターのソースに修正を加える場合、修正後のファイルを送る場合とパッチのみを送る場合があります。逆にもらう場合もあります。で使い方。
unified形式の例(個人的にはこれが一番見やすくて好きです)
また、修正にパッチファイルだけを渡される場合があるのですがレビューなどをする場合はパッチとパッチ適用後両方のファイルを渡したほうが親切です。
実行例は下記に。
マスターのソースに修正を加える場合、修正後のファイルを送る場合とパッチのみを送る場合があります。逆にもらう場合もあります。で使い方。
diffコマンド
ほとんど下のオプションのみ知っていればOKかと。diffで差分だけを見たいときはオプションなしでもほとんど問題なし。オプション | 内容 |
-c | コンテキスト形式(context format)の出力 |
-u | ユニファイド形式(unified format)の出力 |
-r | サブディレクトリ以下もリカーシブにdiffを実行 |
unified形式の例(個人的にはこれが一番見やすくて好きです)
--- org.php 2012-02-26 07:45:02.000000000 -0600 +++ mod.php 2012-02-26 07:45:04.000000000 -0600 @@ -1,8 +1,7 @@ #!/usr/local/bin/php <?php -$prm_opts = getopt ("a:"); +$prm_opts = getopt ("a:b:"); print "*** a=". $prm_opts["a"] . "\n"; - -// EOF +print "*** b=". $prm_opts["b"] . "\n";
patchコマンド
patchコマンドはオリジナルに直接更新をかけるので、バックアップか出力先を指定して実行した方がよい。また、修正にパッチファイルだけを渡される場合があるのですがレビューなどをする場合はパッチとパッチ適用後両方のファイルを渡したほうが親切です。
オプション | 内容 |
-c | パッチファイルがコンテキスト形式の場合指定(なくても可) |
-u | パッチファイルがユニファイド形式の場合指定(なくても可) |
-b | バックアップファイルを作成する |
-o | パッチを適用した新しいファイルを指定されたファイルに出力する |
実行例は下記に。
[続きを見る]