*趣旨 [#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


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS