$ find old-prj/ -type f
old-prj/inc/def1.h
old-prj/inc/def2.h
old-prj/src/sys/sys1.c
old-prj/src/sys/sys1.h
old-prj/src/app/app1.c
old-prj/src/app/app2.c
old-prj/src/app/app2.h
old-prj/src/app/app1.h
old-prj/src/drv/drv1.h
old-prj/src/drv/drv2.c
old-prj/src/drv/drv1.c
old-prj/src/drv/drv2.h
old-prj/build/Makefile
$ mkdir test1
$ cd test1
$ tar xvjf ../old-prj.tar.bz2
$ cp -a old-prj/ new-prj
$ cat -n old-prj/src/drv/drv1.h
1 #ifndef DRV1_H
2 #define DRV1_H
3
4 #include "def1.h"
5
6 typedef struct {
7 int p1;
8 int p2;
9 int p3;
10 } App1;
11
12 void do_app1(void);
13
14 #endif
$ cat -n new-prj/src/drv/drv1.h
1 #ifndef DRV1_H
2 #define DRV1_H
3
4 #include "def1.h"
5
6 typedef struct {
7 int a;
8 int b;
9 } App1;
10
11 void do_app1(void);
12
13 #endif
$ diff -u old-prj/src/drv/drv1.h new-prj/src/drv/drv1.h
--- old-prj/src/drv/drv1.h 2008-03-01 12:59:46.000000000 +0800
+++ new-prj/src/drv/drv1.h 2008-03-01 13:07:14.000000000 +0800
@@ -4,9 +4,8 @@
#include "def1.h"
typedef struct {
- int p1;
- int p2;
- int p3;
+ int a;
+ int b;
} App1;
void do_app1(void);
$ diff -u 旧文件 新文件
--- old-prj/src/drv/drv1.h 2008-03-01 12:59:46.000000000 +0800
+++ new-prj/src/drv/drv1.h 2008-03-01 13:07:14.000000000 +0800
@@ -4,9 +4,8 @@
#include "def1.h"
typedef struct {
- int p1;
- int p2;
- int p3;
+ int a;
+ int b;
} App1;
void do_app1(void);
$ diff -u old-prj/src/drv/drv1.h new-prj/src/drv/drv1.h>../drv1.diff
$ cd ..
$ mkdir test2
$ cd test2
$ tar xvjf ../old-prj.tar.bz2
$ mv old-prj myprj
$cd myprj
$ patch -p1 < ../../drv1.diff
patching file src/drv/drv1.h
--- old-prj/src/drv/drv1.h 2008-03-01 12:59:46.000000000 +0800
$ patch -p1 < 补丁文件
$ cd ../../test1; rm -rf new-prj/src/sys; mkdir new-prj/src/usr
$ echo -e "#ifndef USR1_H/n#define USR1_H/n#include /"def1.h/"/n#endif">new-prj/src/usr/usr1.h
$ echo -e "#include /"usr1.h/"">new-prj/src/usr/usr1.c
$ diff -Nur old-prj/ new-prj/ > ../prj.diff
$ diff -Nur 旧目录 新目录 > 补丁文件
$ diff -Naur 旧目录 新目录 > 补丁文件
$ cd ..; mkdir test3; cd test3; tar xvjf ../old-prj.tar.bz2; mv old-prj myprj; cd myprj
$ patch -p1 < ../../prj.diff
patching file src/drv/drv1.h
patching file src/sys/sys1.c
patching file src/sys/sys1.h
patching file src/usr/usr1.c
patching file src/usr/usr1.h
$ cd ../..; diff -Nur test1/new-prj test3/myprj
diff -ur -exclude=.* --exclude=CVS prj_old prj_new
cvs diff -u3 > 补丁文件名
patch -p0 < 补丁文件名
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |