简述

顾名思义,diff是差异的意思,patch是补丁的意思,合起来理解就是根据差异进行打补丁。

应用场景

补丁patch这中方式在大型的项目中比较常见,一个需求需要对多个模块进行修改,比如一个项目中有module1......module9九个模块,module1上有文件修改了,需要在其它模块上进行验证(本地进行验证,代码未提交),这时比较方面快捷的方式就是生成一个patch文件,发给相应模块的开发人员进行验证。

补丁生成及使用

OK,进入正题,本地模仿演示下patch的生成及使用方法,我在本地新建了test文件夹,里面又创建了三个文件夹,其中source1:表示module1

source2:表示module1修改后的文件(对于加入版本管理的文件不需要source2)

other:表示需要验证的其它模块

source1文件夹中有个file1.test文件,文件内容如下

现在我们对这个文件进行修改,并将修改后的文件放到source2文件夹下面(对于加入版本管理的文件不需要移动文件),修改后如下:

下一步使用diff命令查看修改前后的差异,直接使用diff比较不太容易理解,加入参数后比较容易看(LCTT 译注:参数 -N 代表如果比较的文件不存在,则认为是个空文件, -a 代表将所有文件都作为文本文件对待,-u 代表使用合并格式并输出上下文,-r 代表递归比较目录),下面是加参数和未加参数输出比较:

上面输出我们可以看出对文件进行了哪些修改,其中---表示修改前的文件,+++表示修改后的,-表示删除了该行,+表示增加了该行。

生成patch

$ sudo diff -Naur source1/file1.test source2/file1.test > file.patch

运行命令后在当前路径下生成了file.patch文件,文件内容就是通过diff查看到的内容。到此完成了patch的生成,其实很简单,就是将修改前后的差异(diff)保存到文件中,这个文件就是补丁patch。

接下来我们就把补丁发给其它模块的开发人员小王,小王负责other模块(就是上面的other文件夹),小王本地代码也有module1的代码,是未修改的,小王要把补丁应用起来就需要在相应路径(对照patch文件中file1.test路径)下运行

sudo patch -p1 <../file.patch

成功之后,小王本地代码中的file1.test文件也同步了patch中的修改,就可以进行验证了。

注:对于加入版本管理(git等)的文件,修改后的文件会有状态记录,直接diff单个文件就行了。

很简单的点,无聊写下来记录。

diff文件和patch文件使用相关推荐

  1. Git diff 生成patch文件

    通过git diff 命令生成patch文件 1.还未提交的修改 命令 :git diff > commit.patch 2.已提交的修改 先用git log命令查看commit id soft ...

  2. 使用和制作patch文件

    使用和制作patch文件 发表时间: 2007-2-13 20:57    作者: superuser    来源: 迷茫人 字体: 小 中 大 | 打印 原文http://www.linuxsir. ...

  3. 如何制作LINUX的patch文件及如何打patch

    如何制作LINUX的patch文件及如何打patch 对某个版本的Linux内核做了修改以后,如果希望发布出去给别人用,那么就需要制作针对此版本的patch文件. patch文件也叫补丁,就是一个文本 ...

  4. 用diff 生成patch文件的命令/方法

    linux diff命令 diff命令可以比较两个相同文件进而生成patch文件 使用如下命令获得命令的帮助 didff --help 使用以下option -u, -U NUM, --unified ...

  5. diff linux文件夹patch,diff 文件差异和patch打补丁工具

    一.操作文件说明 1.原始文件word1 文件内容如下: 再别康桥 徐志摩 轻轻的我走了, 正如我轻轻的来: 我轻轻的招手, 作别西天的云彩. ... . 2.目标文件word2 文件内容如下: 再别 ...

  6. linux下比较文件并输出,Linux使用diff命令比较文件找出文件之间相同的部分

    如果你需要比较系统文件的内容,那么你就会是使用到diff命令,可找出文件之间相同的部分,下面小编就给大家详细介绍下Linux diff命令的用法. diff 命令是 linux上非常重要的工具,用于比 ...

  7. diff 比较两个文件的差异

    功能:比较两个文件的差异,并把不同地方的信息显示出来.默认diff格式的信息. diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的补丁文件.也使用patch命令对 ...

  8. u-boot的patch文件制作

    首先明白为什么要制作patch文件,因为u-boot的移植过程需要根据实际需要修改通用u-boot,如果每次手工修改的话,太麻烦,所以用了patch文件一步到位,这点类似于makefile的作用,哈哈 ...

  9. 【转贴】使用和制作patch文件

    今天上QQ的时候发现eva不能用了,后来又看到了解决方法,所以想打个补丁,不过不会:-).后来查了查明白了,写了个总结,分享一下,也不知道以前有 没有这方面的东西,希望我这个不是多余的. 创建补丁文件 ...

最新文章

  1. 解决博客园模版错误排版的一个问题
  2. Web前端三剑客之CSS基础
  3. Python进行数据分析—可视化之seaborn
  4. springboot 之 webscoket 服务端推送
  5. 动态创建标记+css_dom+js动态效果
  6. 为什么不能在子类的初始化列表里初始化父类的成员
  7. 20150303+JQuery选择器-02
  8. ZZULIOJ 1114: 逆序
  9. Filter过滤器概念及生命周期
  10. 视觉slam十四讲 第二版 pdf_第二版SLAM上帝视角,它来啦!!!
  11. 刻录cd(不同系统的方式)
  12. Python 数值四舍五入碰到遇5不进
  13. centos pptp client 配置
  14. arch配置之百度网盘
  15. python pandas dataframe 不显示索引_Python DataFrame 设置输出不显示index(索引)值的方法...
  16. 如何顺利获得美国工作签证
  17. 【ant design vue】 生成表格序号
  18. 支付必测--使用fiddler篡改支付金额
  19. Windows10系统开机内存占有率超50%的原因
  20. UI自动化测试AutoIT工具使用

热门文章

  1. 电子书epub修改书名
  2. html的marquee标签,HTML Marquee标签
  3. 基金实盘组合总结,继续修正投资策略
  4. MFC 对话框改变字体大小
  5. 《在小吃店遇见凯恩斯》读书心得小记 - Part 1
  6. HotSpot与JVM概述
  7. 2.12进程互斥的硬件实现方法
  8. OleDbParameter在Access数据库Insert时参数不对应的怪现象[友情提示]
  9. BindingNavigator 类 - MSDN
  10. 技术揭秘二:探讨12306两地三中心混合云架构