quilt 子命令 [参数]
$ mkdir qtest
$ cd qtest
$ tar xvjf ../old-prj.tar.bz2
$ mv old-prj prj
$ cd prj
$ quilt import ../../prj.diff
Importing patch ../../prj.diff (stored as prj.diff)
$ find patches/ -type f
patches/prj.diff
patches/series
$ quilt applied
No patches applied
$ quilt unapplied
prj.diff
$ quilt top
No patches applied
$ quilt push -a
Applying patch 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
Now at patch prj.diff
$ quilt applied
prj.diff
$ quilt unapplied
File series fully applied, ends at patch prj.diff
$ quilt top
prj.diff
quilt add [-P 补丁名] 文件名
$ quilt new drv_p1.diff
Patch drv_p1.diff is now on top
$ quilt top
drv_p1.diff
$ quilt applied
prj.diff
drv_p1.diff
$ quilt unapplied
File series fully applied, ends at patch drv_p1.diff
$ cd src/drv
$ quilt add drv2.h
File src/drv/drv2.h added to patch drv_p1.diff
$ quilt diff -z
Index: prj/src/drv/drv2.h
===================================================================
--- prj.orig/src/drv/drv2.h 2008-03-02 13:37:34.000000000 +0800
+++ prj/src/drv/drv2.h 2008-03-02 13:38:53.000000000 +0800
@@ -1,7 +1,7 @@
-#ifndef APP1_H
-#define APP1_H
+#ifndef DRV2_H
+#define DRV2_H
-#include "def1.h"
+#include "def2.h"
#endif
$ quilt files
src/drv/drv2.h
$ quilt files -val
[prj.diff] src/drv/drv1.h
[prj.diff] src/sys/sys1.c
[prj.diff] src/sys/sys1.h
[prj.diff] src/usr/usr1.c
[prj.diff] src/usr/usr1.h
[drv_p1.diff] src/drv/drv2.h
$ quilt refresh
Refreshed patch drv_p1.diff
$ cat ../../patches/drv_p1.diff
Index: prj/src/drv/drv2.h
===================================================================
--- prj.orig/src/drv/drv2.h 2008-03-02 12:42:21.000000000 +0800
+++ prj/src/drv/drv2.h 2008-03-02 12:46:25.000000000 +0800
@@ -1,7 +1,7 @@
-#ifndef APP1_H
-#define APP1_H
+#ifndef DRV2_H
+#define DRV2_H
-#include "def1.h"
+#include "def2.h"
#endif
$ cd ..
$ quilt new more_p1.diff
Patch more_p1.diff is now on top
$ quilt add applet/applet.c
File src/applet/applet.c added to patch more_p1.diff
$ quilt add applet/applet.1
File src/applet/applet.1 added to patch more_p1.diff
$ quilt files
src/applet/applet.1
src/applet/applet.c
$ quilt remove applet/applet.1
rm: remove write-protected regular empty file `.pc/more_p1.diff/src/applet/applet.1'? y
File src/applet/applet.1 removed from patch more_p1.diff
$ quilt remove applet/applet.c
rm: remove write-protected regular empty file `.pc/more_p1.diff/src/applet/applet.c'? y
File src/applet/applet.c removed from patch more_p1.diff
$ quilt files
$ quilt add applet/applet1.h
File src/applet/applet1.h added to patch more_p1.diff
$ quilt add applet/applet1.c
File src/applet/applet1.c added to patch more_p1.diff
$ quilt files
src/applet/applet1.c
src/applet/applet1.h
$ mkdir applet
$ echo -e "#ifndef APPLET1_H/n#define APPLET1_H/n#include /"def1.h/"/n#endif">applet/applet1.h
$ echo -e "#include /"applet1.h/"">applet/applet1.c
$ quilt refresh more_p1.diff
Refreshed patch more_p1.diff
$ quilt add drv/drv2.h
File src/drv/drv2.h added to patch more_p1.diff
$ vi drv/drv2.h
$ quilt diff -z drv/drv2.h
Index: prj/src/drv/drv2.h
===================================================================
--- prj.orig/src/drv/drv2.h 2008-03-02 14:19:35.000000000 +0800
+++ prj/src/drv/drv2.h 2008-03-02 14:31:28.000000000 +0800
@@ -1,7 +1,7 @@
#ifndef DRV2_H
#define DRV2_H
-#include "def2.h"
+#include "def1.h"
#endif
$ quilt new more_p2.diff
Patch more_p2.diff is now on top
$ quilt add app/*
File src/app/app1.c added to patch more_p2.diff
File src/app/app1.h added to patch more_p2.diff
File src/app/app2.c added to patch more_p2.diff
File src/app/app2.h added to patch more_p2.diff
$ rm -rf app
$ quilt refresh
Refreshed patch more_p2.diff
$ quilt edit applet/applet1.h
File src/applet/applet1.h added to patch more_p2.diff
$ quilt refresh
Refreshed patch more_p2.diff
$ quilt diff -z -P more_p1.diff
Index: prj/src/drv/drv2.h
===================================================================
--- prj.orig/src/drv/drv2.h 2008-03-02 14:19:35.000000000 +0800
+++ prj/src/drv/drv2.h 2008-03-02 14:31:28.000000000 +0800
@@ -1,7 +1,7 @@
#ifndef DRV2_H
#define DRV2_H
-#include "def2.h"
+#include "def1.h"
#endif
Warning: more recent patches modify files in patch more_p1.diff
$ quilt refresh more_p1.diff
More recent patches modify files in patch more_p1.diff. Enforce refresh with -f.
$ quilt refresh -f more_p1.diff
Refreshed patch more_p1.diff
$ quilt series
prj.diff
drv_p1.diff
more_p1.diff
more_p2.diff
$ quilt patches drv/drv2.h
drv_p1.diff
more_p1.diff
$ quilt annotate drv/drv2.h
1 #ifndef DRV2_H
1 #define DRV2_H
2 #include "def1.h"
#endif
1 drv_p1.diff
2 more_p1.diff
$ quilt pop -a
Removing patch more_p2.diff
Restoring src/app/app1.c
Restoring src/app/app2.c
Restoring src/app/app2.h
Restoring src/app/app1.h
Restoring src/applet/applet1.h
Removing patch more_p1.diff
Restoring src/drv/drv2.h
Removing src/applet/applet1.h
Removing src/applet/applet1.c
Removing patch drv_p1.diff
Restoring src/drv/drv2.h
Removing patch prj.diff
Restoring src/sys/sys1.c
Restoring src/sys/sys1.h
Restoring src/drv/drv1.h
Removing src/usr/usr1.c
Removing src/usr/usr1.h
No patches applied
$ quilt top
No patches applied
$ quilt next
prj.diff
$ quilt previous
No patches applied
$ quilt push more_p1.diff
Applying patch 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
Applying patch drv_p1.diff
patching file src/drv/drv2.h
Applying patch more_p1.diff
patching file src/applet/applet1.c
patching file src/applet/applet1.h
patching file src/drv/drv2.h
Now at patch more_p1.diff
$ quilt top
more_p1.diff
$ quilt next
more_p2.diff
$ quilt previous
drv_p1.diff
$ quilt push -a
Applying patch more_p2.diff
patching file src/app/app1.c
patching file src/app/app1.h
patching file src/app/app2.c
patching file src/app/app2.h
patching file src/applet/applet1.h
Now at patch more_p2.diff
$ quilt graph --all > ../../more_p2.dot
$ cd ../..; dot -Tpng more_p2.dot -o more_p2.png
$ cd prj
$ tar cvjf prj-0.1-patches.tar.bz2 patches
$ mv prj-0.1-patches.tar.bz2 ../..
$ cd ../..
$ mkdir user
$ cd user
$ tar xvjf ../old-prj.tar.bz2
$ mv old-prj/ prj
$ cd ../..
$ tar xvjf prj-0.1-patches.tar.bz2
$ cd user/prj
$ ln -sfn ../../patches/ patches
$ quilt push -a
Applying patch 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 Applying patch drv_p1.diff
patching file src/drv/drv2.h
Applying patch more_p1.diff
patching file src/applet/applet1.c
patching file src/applet/applet1.h
patching file src/drv/drv2.h
Applying patch more_p2.diff
patching file src/app/app1.c
patching file src/app/app1.h
patching file src/app/app2.c
patching file src/app/app2.h
patching file src/applet/applet1.h
Now at patch more_p2.diff
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |