- 追加された行はこの色です。
- 削除された行はこの色です。
*趣旨 [#w7a0be21]
コード差分のみをジェネレータで生成して、それをオリジナルのコードに反映させてみたいと思った。
patchコマンドを使う
diffコマンドの原理を調べたりする
*目次 [#f38aa24c]
#contents
*目標 [#ob2684fc]
差分ファイルをコード生成ツールを自作して作成して、
diffコマンドでパッチを当ててみる、
*diffの動作原理 [#h54f48eb]
http://gihyo.jp/dev/column/01/prog/2011/diff_sd200906
*オプション [#ef055fb8]
** [#n8212feb]
http://codezine.jp/unixdic/w/diff
*シェルコマンド [#mc08525f]
**cygwin入門 [#bc13521a]
diffとかpatchコマンドとか掲載されている
http://www.tip.sakura.ne.jp/htm/cygwinchp_6.htm
*patchとdiff [#t34b5786]
**diff/patch とは [#k89c87c5]
http://linux.blog.kaone.net/linux%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/diff%20-%20patch
**ファイル単位のパッチ作成 [#ra13a722]
1ファイル毎にパッチを作成するには以下のようにします
#diff -c <元ファイル名> <修正後ファイル名> > <パッチファイル>
また別のサイトには
$ diff -u(または -c) 変更前のファイル 変更後のファイル > パッチファイル名
と書いてあった
***オプション-u [#sc13a64a]
オプションの「-u」はパッチファイルを、unified diff形式で出力するという指定です。
***オプション-c [#q6e31247]
「-c」の場合はcontext diff形式での出力になります。
***オプションについて [#n225c8f2]
「-u(または -c)」無しでもパッチファイルの作成は可能ですが、パッチ適用の時にパッチを適用するファイル名などを別途指定する必要があるので、「-u(または -c)」は指定したほうがラクです。
***参考 [#ga232f12]
diff & patch コマンドでのパッチを適用する方法
http://d.hatena.ne.jp/mrgoofy33/20101019/1287500809
**ファイル単位のパッチ [#h1ae51ac]
適用したいファイルの存在するディレクトリ上で以下のようにします
#patch < <パッチファイル>
*patchの例を表示 [#vd2fb547]
http://www.turbolinux.co.jp/products/server/10s/manual/command_guide/command_guide/diff.html