源码维护基本命令

一. diff--生成补丁

diff [命令行选项] 源文件 新文件

-r 递归处理相应目录

-N 包含新文件到patch

-u 输出统一格式(unified format),这种格式比缺省更紧凑些

-p 如果不同在函数中,则提示所在函数名

-a 可以包含二进制文件到patch中

-N 视不存在的文件为空文件来比较

-x PATTERN 忽略PATTERN匹配的文件

diff –ruN test1.txt test2.txt > test.patch

二. patch--打补丁

patch -pn(n为自然数) < patch文件

$patch –p<n> <diff_file
$cat diff_file | patch –p<n>
$bzcat diff_file.bz2 | patch –p<n>
$zcat diff_file.gz | patch –p<n>
<n>代表按照patch文件的路径忽略的目录级数,每个“/”代表一级。

p0是完全按照补丁文件中的路径查找要修改的文件

p1则使用去掉第一级“/”得到的相对路径,再基于当前目录,到相应的相对路径下查找要修改的文件。

考虑到顶层目录在不同的系统上可能有所不同,要使用这个选项,就要把patch文件放到要被打补丁的目录下,然后在这个目录下运行命令。

如linux-2.6.14 –> linux-2.6.15 => patch-2.6.14.15,打补丁

$bzcat ../patch-2.6.14.15.bz2 | patch –p1     //上一目录
$patch -p0 <patch-2.6.14.15.bz2                //被打补丁的目录

三. quilt--补丁管理

quilt命令同样具有生成补丁和应用补丁的功能,但它的优势是还可以作为管理补丁的工具。一个比较大的项目可能由不同开发者共同维护,其中很多修改都以补丁的方式提供,这些补丁可能存在依赖关系。

quilt工具在源代码目录中生成一个patches/目录,里面存放所有可用的补丁,记录了所有patches的先后顺序,并提供了一系列操作这些补丁的命令。

quilt以栈的形式管理补丁,最先打上的补丁位于栈底,最后打上的补丁位于栈顶(top)。打patch的动作称为push,取消补丁的动作称为pop。就如下图所示,项目中有5个patch,最新的patch为e.patch,所以quilt将这个patch放在栈顶,通过维护这样一个结构,quilt可以继续打新patch或按顺序回退patch。

源代码的patch文件的先后顺序可以查看patches/目录下的series文件。

参考:diff/patch命令以及quilt工具的使用

源码维护基本命令diff_patch_quilt相关推荐

  1. RocketMQ源码(十九)之消费者Rebalance

    文章目录 版本 简介 Broker端 ConsumerManager ConsumerOffsetManager SubscriptionGroupManager 消费端 RebalanceServi ...

  2. [转] 用Diff和Patch工具维护源码

    在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,Unix标配中的diff和patch工具 ...

  3. 酷炫星空公告维护页源码

    简介: 可以做成自己的引导页 也可以整成维护公告页 源码为html页面,直接上传修改信息即可 自带音乐,可自行关闭 文字内容可以修改 网盘下载地址: http://kekewangLuo.net/O1 ...

  4. 网站维护404页面带音乐源码CSS本地化

    介绍: 可以用来当网站维护界面 404页面 502页面 都可以 源码简单CSS本地化 不是网上泛滥的版本 已经修复 网盘下载地址: http://kekewl.org/evdg1g1TT310 图片:

  5. GitHub 下架 Youtube-dl 遭粉丝疯狂上传源码报复,开源者的权益谁来维护?

    整理 | 夕颜 图源 | 视觉中国 出品 | CSDN(ID:CSDNnews) 最近,GitHub发生了一件大事.事情的主角是一个名叫YouTube-dl的开源视频下载工具源码,可以用来下载YouT ...

  6. 超唯美海洋夕阳日落网站维护HTML源码

    正文: 超唯美海洋夕阳日落网站维护HTML源码,有兴趣的自行拿去体验吧. 程序: wwxths.lanzouu.com/imTuo0il3fkd 图片:

  7. Java毕设项目中学后勤设备保修维护管理系统计算机(附源码+系统+数据库+LW)

    Java毕设项目中学后勤设备保修维护管理系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也 ...

  8. java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计中学后勤设备保修维护管理系统源码+mysql数据库+系统+部署+lw文档 本源码技 ...

  9. 计算机毕业设计Java中学后勤设备保修维护管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java中学后勤设备保修维护管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java中学后勤设备保修维护管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...

  10. Redrain个人维护并使用的DuiLib和UiLib库源码下载地址

    转载请说明原出处:http://blog.csdn.net/zhuhongshu/article/details/40740353,谢谢~~ 首先说明一下Duilib和Uilib的区别:UiLIb是D ...

最新文章

  1. 【FI模块学习笔记】 固定资产概述(下)
  2. vue 双向数据绑定的实现学习(一)
  3. Haproxy+多台MySQL从服务器(Slave) 实现负载均衡
  4. bootstrap-validator 验证一个标签同时验证另一个指定标签
  5. Makefile赋值符号的使用——= := ?= +=
  6. 过滤器,绑定事件,动画
  7. kido机器人用流量吗_国脉电信200元天网卡,交1700流量无线用,拉人加入还会有不错的收益,你信吗?反正我是不信!...
  8. java中类和实例化_Java中类的初始化与实例化
  9. mybatis java sql_mybatis java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax;
  10. python插入排序
  11. 深度图像RGB-D(RGB+Depth Map)名词扫盲笔记
  12. 华为手机隐藏代码大全!一秒查出你的手机使用记录
  13. python编写贪吃蛇大战_用Python实现贪吃蛇双人大战
  14. glsl中uniform,attribute和varying详解
  15. ACM程序设计 -L (字符串倒输出)
  16. uniApp 实现微信小程序和app视频播放flv格式视频监控
  17. python可以替代office吗_哪些办公软件可以完美替代 Microsoft Office?
  18. oracle 里sum(0),sum(1) ,sum(2) ,sum(num) over,count(*) over() ,coun(*),count(1)
  19. 做旅游的就要有驴子精神
  20. 谷歌浏览器恐龙游戏开挂秘诀

热门文章

  1. java 编写a-z输出,有1-26个数字和a-z字母,用Java多线程实现先输出2和数字再输出2个字...
  2. android背景差分法,基于android平台的视频运动目标检测系统.pdf
  3. 通过vue-cli3构建一个SSR应用程序
  4. 必须掌握的30种SQL语句优化
  5. 学会写出"图形界面+数据库"的程序要多长时间?
  6. 开发反应执行阿里云mysql语句报错
  7. [题解]第十一届北航程序设计竞赛预赛——I.神奇宝贝大师
  8. oracle中trim,ltrim,rtrim函数用法
  9. sysbench 0.5 oltp测试笔记
  10. c++primer 容器算法整理一