LoginSignup
1
0

More than 3 years have passed since last update.

複数のソースコードファイルのパッチをまとめて作る

Last updated at Posted at 2019-04-19

はじめに

複数のソースコードファイルを修正してまとめてパッチを作りたい時ってありませんか.
自分は,あったのでメモ程度に

コマンド

オリジナルのソースコードがあるディレクトリ(generic_src_dir)と修正したソースコードがあるディレクトリ(custom_src_dir)を用意し以下のコマンドを実行.
例として拡張子が"[csSh]"の場合

$ find generic_src_dir -name "*.[csSh]" -printf "%P %f\n" | awk '{print "diff -up generic_src_dir/" $1 " custom_src_dir/" $1 " > " $2 ".patch && if [ -s " $2 ".patch ]; then :; else rm -f " $2 ".patch ; fi" }' | sh

 使用例

linuxのソースコードで,
① kernel/fork.c
② arch/x86/kernel/head64.S
③ include/thread_info.h
の3つのソースコードを修正した場合

$  ls
custom_linux_src  generic_linux_src
$  find generic_linux_src -name "*.[csSh]" -printf "%P %f\n" | awk '{print "diff -up generic_linux_src/" $1 " custom_linux_src/" $1 " > " $2 ".patch && if [ -s " $2 ".patch ]; then :; else rm -f " $2 ".patch ; fi" }' | sh
$ ls
custom_linux_src  fork.c.patch  generic_linux_src  head_64.S.patch  thread_info.h.patch

以下のパッチが生成されていることがわかります.
① fork.c.patch
② head_64.S.patch
③ thread_info.h.patch

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0