2013年2月6日水曜日

patch

patch作成
patchファイルの作成方法を記述する。
Example 1. 元ソース (hello.c)
#include <stdio.h>

int main(void)
{
  print("Hello, world\n");

  return 0;
}
  1. patchファイル用ディレクトリ (patch) を作成
    $ mkdir patch
    
    Example 2. 変更ソース (patch/hello.c)
    #include 
    
    int main(void)
    {
      print("Hello, hogehoge\n"):
    
      return 0;
    }
    
  2. diffの結果
    $ diff hello.c patch/hello.c
    5c5
    <   print("Hello, world\n");
    ---
    >   print("Hello, hogehoge\n");
    
  3. patchファイル作成
    $ diff -Naur hello.c patch/hello.c > hello.patch
    
  4. 作成されたpatchファイル
    --- hello.c     2009-02-18 11:05:02.000000000 +0900
    +++ patch/hello.c       2009-02-18 11:06:16.000000000 +0900
    @@ -2,7 +2,7 @@
    
     int main(void)
     {
    -  print("Hello, world\n");
    +  print("Hello, hogehoge\n");
    
       return 0;
     }
    
  5. patchファイルの先頭に実行したdiffコマンドを付加する
    diff -Naur hello.c patch/hello.c <--- ここを追加
    --- hello.c     2009-02-18 11:05:02.000000000 +0900
    +++ patch/hello.c       2009-02-18 11:06:16.000000000 +0900
    @@ -2,7 +2,7 @@
    
     int main(void)
     {
    -  print("Hello, world\n");
    +  print("Hello, hogehoge\n");
    
       return 0;
     }
    
  6. patchを適用する
    $ cp hello.c hello.c~
    $ patch < hello.patch
    patching file hello.c
    $ diff hello.c hello.c~
    5c5
    <   print("Hello, hogehoge\n");
    ---
    >   print("Hello, world\n");
    

0 件のコメント:

コメントを投稿