上面的两个文件夹不同之处是前者有一个aa.txt文件,另外修改了cpu/s3c44b0/cpu.c文件
一共有这两处不同,下面来使用diff进行创建补丁包:
退到两者的上一级目录,执行diff -Nur u-boot-1.3.1/ u-boot-1.3.0/ > test.patch
参数解释:
-r --recursive Recursively compare any subdirectories found.递归各级目录
-N --new-file Treat absent files as empty.对待缺失文件方式(像aa.txt,一个目录有该文件,一个目录没有,这样没有该文件的那个目录把aa.txt看作有这个文件,但内容为空)
-u统一格式
现在有了补丁包我们怎么打补丁呢,先看一下补丁包的内容
diff -Nur u-boot-1.3.1/aa.txt u-boot-1.3.0/aa.txt
--- u-boot-1.3.1/aa.txt 2010-03-27 08:26:03.000000000 +0800
+++ u-boot-1.3.0/aa.txt 1970-01-01 08:00:00.000000000 +0800
@@ -1 +0,0 @@
-hhhhhhhhhhhhhhhhhhhhhhhh
diff -Nur u-boot-1.3.1/cpu/s3c44b0/cpu.c u-boot-1.3.0/cpu/s3c44b0/cpu.c
--- u-boot-1.3.1/cpu/s3c44b0/cpu.c 2010-03-27 08:19:01.000000000 +0800
+++ u-boot-1.3.0/cpu/s3c44b0/cpu.c 2010-03-27 08:37:34.000000000 +0800
@@ -32,6 +32,15 @@
#include <command.h>
#include <asm/hardware.h>
+/*
+this is test
+*/
+void test()
+{
+ printf("%s/n","hehe");
+}
+
+
加入我们进入u-boot-1.3.0这个目录,我们可以执行
patch -p1 < test.patch
这样我们就打上了补丁啦,这里为什么要是p1呢?1是指把u-boot-1.3.0给过滤掉,就是说补丁是从这个目录下开始的。
如果我们打完补丁以后发现又不想要这个补丁了,怎么办呢?执行patch -p1 -R < test.patch删除补丁就可以啦