Linux diff patch
/*****************************************************************************
* Linux diff patch
* 声明:
* 经常需要给代码打补丁,但是发现自己不会打补丁,经常看着补丁改代码,效率
* 那是一个低啊,不会就学学呗,反正patch有-R回退,不怕出错。
*
* 2015-12-28 深圳 南山平山村 曾剑锋
****************************************************************************/ \\\\\\-*- 目录 -*-//////
| 参考文章:
| 一、cat main1.c
| 二、cat main2.c
| 三、execute diff:
| 四、execute patch:
| 五、patch back:
----------------------- 参考文章:
. 用Diff和Patch工具维护源码
http://www.ibm.com/developerworks/cn/linux/l-diffp/index.html
. diff和patch使用指南
http://www.cnblogs.com/cute/archive/2011/04/29/2033011.html
. 补丁格式 diff patch
http://blog.sina.com.cn/s/blog_51cea4040101atql.html 一、cat main1.c
#include <stdio.h> int main( int argc, char **argv )
{
printf( " zengjf test for diff and patch.\n" );
} 二、cat main2.c
#include <stdio.h> int main( int argc, char **argv )
{ printf( " zengjf test for diff and patch.\n" );
} 三、execute diff:
. $: diff -Nur main1.c main2.c > main.patch
. 在当前目录下生成了main.patch文件:
--- main1.c -- ::49.388152208 +
+++ main2.c -- ::17.376180914 +
@@ -, +, @@ int main( int argc, char **argv )
{
+
+
+
printf( " zengjf test for diff and patch.\n" );
} 四、execute patch:
. 当前目录下有:main1.c main2.c main.patch
. cat main1.c
#include <stdio.h> int main( int argc, char **argv )
{
printf( " zengjf test for diff and patch.\n" );
}
. $: patch -p0 < main.patch <right>
patching file main1.c
. cat main1.c
#include <stdio.h> int main( int argc, char **argv )
{ printf( " zengjf test for diff and patch.\n" );
}
. $: patch p0 < main.patch <error>
patching file p0
Hunk # FAILED at .
out of hunk FAILED -- saving rejects to file p0.rej
. $: patch -p1 < main.patch <error>
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
----------------------------------
|--- main1.c -- ::49.388152208 +
|--- main2.c -- ::17.376180914 +
----------------------------------
File to patch: <cursor>
. $: patch -p0 main.patch <error>
^C 五、patch back:
. 当前目录下有:main1.c main2.c main.patch
. cat main1.c
#include <stdio.h> int main( int argc, char **argv )
{ printf( " zengjf test for diff and patch.\n" );
}
. $: patch -p0 -R < main.patch
patching file main1.c
. cat main1.c
#include <stdio.h> int main( int argc, char **argv )
{
printf( " zengjf test for diff and patch.\n" );
} 六、实例分析:
. patch 部分内容:
diff --git a/proguard.flags b/proguard.flags
index 6d41d17..ffbc39a
--- a/proguard.flags
+++ b/proguard.flags
@@ -, +, @@
-keep class com.android.settings.MasterClearConfirm
-keep class com.android.settings.accounts.*
-keep class com.android.settings.fuelgauge.*
-
+-keep class com.android.settings.ethernet.*
. 解析:@@ -, +, @@
. @@ -表示代表a/proguard.flags文件;
. 11代表下面显示的代码是从a/proguard.flags文件的第11行开始;
. 4代表a/proguard.flags被操作了;
. +代表b/proguard.flags文件
. 11代表下面显示的代码是从b/proguard.flags文件的第11行开始;
. 4代表b/proguard.flags被操作了;
. @@ 代表结束
Linux diff patch的更多相关文章
- Linux之旅(1): diff, patch和quilt (下)
Linux之旅(1): diff, patch和quilt (下) 2 quilt 我们自己的项目能够用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件,但又不 ...
- Linux游(1): diff, patch和quilt (下一个)
Linux游(1): diff, patch和quilt (下一个) 2 quilt 我们自己的项目可以用cvs或svn管理所有代码.但有时我们要使用其它开发人员维护的项目.我们须要改动一些文件.但又 ...
- 【转】Linux下patch打补丁命令
[转]Linux下patch打补丁命令 转自:http://www.cnblogs.com/noaming1900/archive/2010/10/28/1863282.html 此命令用于为特定软件 ...
- Linux下patch打补丁命令
此命令用于为特定软件包打补丁,他使用diff命令对源文件进行操作. 基本命令语法: patch [-R] {-p(n)} [--dry-run] < patch_file_name p:为pat ...
- linux命令: patch
一. 针对单文件的patch: 我们以mkprj.sh.1和mkprj.sh两个文件为例: [root@localhost tst]# lsmkprj.sh.1 mkprj.sh 看两个文件的差异: ...
- linux下patch命令使用详解---linux打补丁命令
http://blog.csdn.net/pashanhu6402/article/details/51849354 语 法:patch [-bceEflnNRstTuvZ][-B <备份字首字 ...
- video : Write and Submit your first Linux kernel Patch
http://v.youku.com/v_show/id_XNDMwNzc3MTI4.html After working with Linux (mostly as an advanced user ...
- git diff与linux diff的输出格式之unified format
前言 前面有一篇文章<一个有些意思的项目--文件夹对比工具(一)>,里面简单讲了下diff算法之--Myers算法. 既然是算法,就会有实现,比如git diff中有Myers的实现,gi ...
- diff patch
http://rails-deployment.group.iteye.com/group/wiki/1318-diff-and-patch-10-minutes-guide 情景一:你正尝试从代码编 ...
随机推荐
- POJ 2674
Linear world Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 2448 Accepted: 564 Descr ...
- javascript 图片延迟加载
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- C#中对象的输出
假设有个Costmer类如下: class Costmer { public string Id { get; set; } public string City { get; set; } publ ...
- TCP非阻塞accept和非阻塞connect
http://blog.chinaunix.net/uid-20751538-id-238260.html 非阻塞accept 当一个已完成的连接准备好被accept的时候,select会把监 ...
- java隐士类型转换和强制类型转换
,byte和short型在计算时会自动转换为int型计算,结果也是int 型.所以a1*a2的结果是int 型的. byte+byte=int,低级向高级是隐式类型转换,高级向低级必须强制类型转换,b ...
- 查找当前SQL Server下的Active Session正连接着哪个数据库
今天碰到个事.原本想把数据库设为单用户模式然后把REMOVE FILE.没想到悲剧了.因为很多进程都是需要远程连接这个库,导致别的进程抢在我前面连接了这个数据库,反到我连不上了.想把数据库切回MULT ...
- Spring 事务配置的几种方式
参考:http://www.blogjava.net/robbie/archive/2009/04/05/264003.html http://www.cnblogs.com/appleat/arch ...
- 【python爬虫】根据查询词爬取网站返回结果
最近在做语义方面的问题,需要反义词.就在网上找反义词大全之类的,但是大多不全,没有我想要的.然后就找相关的网站,发现了http://fanyici.xpcha.com/5f7x868lizu.html ...
- vim快捷键笔记【原创】
Vim zR 全部展开 zM全部合并 vim 快捷键 shift + i (‘I’) 进行编辑 shift + 4 (‘$’) 跳到行尾 shift ...
- 使用git建立本地仓储管理代码【转】
转自:http://blog.csdn.net/airk000/article/details/7738231 Git是Linus大神的代码管理工具,简直说是开发者的超级福音,而作为屌丝的个人开发者, ...