2009-06-17 60 views
2

假设我有一个可以用-p0应用的补丁,是否有一个工具可以将此补丁自动转换为-p1补丁。例如,转化转换补丁条级别

Index: stdio-common/_i18n_number.h 
=================================================================== 
--- stdio-common/_i18n_number.h (revision 8348) 
+++ stdio-common/_i18n_number.h (working copy) 
@@ -116,7 +116,7 @@ _i18n_number_rewrite (CHAR_T *w, CHAR_T 
#else 

static CHAR_T * 
-_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr) 
+_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr, CHAR_T *end) 
{ 
    return w; 
} 

到相同的补丁,但有不同的目录名(注意A,B)在路径的前面

Index: stdio-common/_i18n_number.h 
=================================================================== 
--- a/stdio-common/_i18n_number.h (revision 8348) 
+++ b/stdio-common/_i18n_number.h (working copy) 
@@ -116,7 +116,7 @@ _i18n_number_rewrite (CHAR_T *w, CHAR_T 
#else 

static CHAR_T * 
-_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr) 
+_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr, CHAR_T *end) 
{ 
    return w; 
} 

回答

2

简单地转换文件名中的DIFF块头部是好的足够。

sed \ 
    -e 's!^--- !&a/!' \ 
    -e 's!^+++ !&b/!' \ 
    < p0.patch \ 
    > p1.patch 

对于其他小片的mangling工具,我建议patchutils,但是这一次是如此简单,有没有它存在的预效用。

+0

很简单,也许当你知道sed是如何工作的;) – shodanex 2009-06-17 14:31:48