补丁工具Quilt与Git
文章目录
- Quilt
- 使用场景
- 好
- 不好
- 操作(基本)
- 操作(高级)
- 流程
- 以OpenWrt - strongSwan为例:
- Git
- 使用场景:
- 操作
- 鸣谢
常用补丁工具操作及适用场景,不仅限于Linux/OpenWrt。
Quilt
网上教程几乎看不到(估计是这个工具的名字不太好,冲突了),补丁生成后会在Makefile目录下生成patches目录,用于存放quilt格式补丁文件。
$ ls feeds/packages/strongswan
files Makefile patches
使用场景
源码使用quilt打补丁,那就照着套路来,继续用quilt;
对已打包好的源码包进行二次开发(不解包无法看到源码全貌),如:
- Linux内核
- OpenWrt中feeds目录下的绝大部分第三方软件包
好
- 省去手动解包打包流程
- 只是在源码包的基础上进行修改,patch默认置于外部,也就无需重新回填MD5校验值(Makefile)
- 回滚操作简单
不好
- 修改权限不能(644->755)
- 每次都需要先
quilt push -a
,略麻烦 - 同时修改多个旧补丁文件,容易引发冲突(简单的办法是只管往上叠,后面再合并旧的)
操作(基本)
安装
sudo apt-get install quilt
查看最近的补丁(最后一个)(初始为空)
quilt top
应用补丁(压栈)
- 所有:
quilt push -a
- 到指定位置:
quilt push 013-redirect-all-traffic.patch
(001->013) - 单个:
quilt push
- 所有:
取消应用(弹栈)(回滚)
- 所有:
quilt pop -a
- 到指定位置:
quilt pop 002-helloworld.patch
(013->002) - 单个:
quilt pop
- 所有:
创建补丁
quilt new xxx-new-page-about-patch-tools.quilt
添加欲修改文件(记录下文件初始状态)
quilt add README.md
修改,开发
quilt edit README.md
你不一定要用quilt edit
来对文件进行修改,edit只是调取外部编辑器供用户编辑,完后quilt再自动与初始副本进行比较,得出差异项(patch),于是乎:
你可以使用其它喜欢的编辑器(Sublime/gVim/VsCode…)来编辑,保存后只需来一句:quilt refresh
(常用如scp/sftp,远程编辑)保存为patch
quilt refresh
查看当前补丁中已修改文件
quilt files
已修改(当前补丁)
quilt diff
操作(高级)
Debian Wiki - UsingQuilt
流程
以OpenWrt - strongSwan为例:
- 准备环境,释放代码,准备补丁库
make package/feeds/packages/strongswan/{clean,prepare} V=s QUILT=1
- 切换至临时开发目录
cd build_dir/target*/strongswan*/
- 打补丁
应用所有
quilt push -a
应用部分
quilt push XXX-redirect...patch
撤销补丁
quilt pop XXX-redirect...patch
撤销所有
quilt pop -a
当前补丁
quilt top
- 新增补丁或编辑旧补丁
quilt new xxx-*.patch
- 添加追踪
quilt add xxx.c
- 编辑
quilt edit xxx.c
- 确认修改(可选)
quilt files && quilt diff
- 保存修改
quilt refresh
- 回到主目录,将补丁从临时开发目录更新至补丁库(Makefile同级patches)
cd ../../../ && make package/feeds/packages/strongswan/update V=s
- 重新编译
make package/feeds/packages/strongswan/{clean,compile} V=s
V=s相当于Verbose,输出详细log
Git
教程多,主流
理解原理才能有效避免合并冲突
廖雪峰Git教程 - 分支管理
使用场景:
- 使用git clone的代码
- 使用git进行代码管理的软件
- 完整代码可直接浏览(与quilt相反)
操作
Git Daily
鸣谢
前同事,他姓黄
给LuCI挖的坑
OpenWrt交叉编译环境
补丁工具Quilt与Git相关推荐
- linux的补丁管理工具--quilt
2.1 基本概念 quilt是一个帮助我们管理补丁的程序.quilt的命令格式类似于cvs: quilt 子命令 [参数] 0.46版的quilt有29个子命令. 掌握quilt的关键是了解使用qui ...
- (50)FPGA面试技能提升篇(版本控制工具Clearcase、Git)
1.1 FPGA面试技能提升篇50(版本控制工具Clearcase.Git) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试技能提升篇50(版本控制工具Cl ...
- GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟。...
GitBook是一个命令行工具(Node.js库),我们可以借用该工具使用Github/Git和Markdown来制作精美的图书,但它并不是一本关于Git的教程哟. 支持输出多种格式 GitBook支 ...
- 【安卓开发系列 -- 开发环境】Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具)
[安卓开发系列 -- 开发环境]Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具) [1]Unbuntu ...
- nck课程笔记:破解补丁工具的使用
破解一个程序的时候我们可以通过搜索字符串的方式来寻找关键点,那么假如我们在编写一个程序的时候,怎么提防这种简单的暴破方式呢? 上一篇文章中已经提到过od里面实现搜索字符串功能是一个插件,视频中的作者给 ...
- 遥望星空补丁工具 V1.7
2011-3-10遥望星空补丁生成工具 V1.7 1.修正一键发布没有考虑重复文件类型(例如配置文件,XML等)的BUG: 2011-2-24遥望星空补丁生成工具 V1.6.3 1.修正一键发布每个补 ...
- 微信小程序开发工具初次使用Git 记录一下
微信开发工具版本号: 这里只是简单记录一下开发工具内的git使用. 首先是点击微信开发者工具内的版本管理(如图): 会出现如下界面,然后点击初始化仓库,然后点击确定. 然后直接点击设置 去添加你的远程 ...
- 工具 好用的一些windows工具,包括git、录屏、ps、navicat等等,后续会持续更新
一.好用的一些windows工具,包括git.录屏.ps.navicat等等,后续会持续更新 不明白怎么安装的可以在评论区留言~ 二.下载链接 链接:https://pan.baidu.com/s/1 ...
- Git的具体使用,包括安装Git工具,把Git和IDEA结合,使用分支
文章目录 Git的具体使用,包括安装Git工具,把Git和IDEA结合,使用分支 git安装及环境配置 git的必要配置 git config -l git config --system --lis ...
最新文章
- 计算机等级必须在学校考吗,计算机等级考试可以跳过一级考二级吗
- mysql备份slave_MySQL主(Master)从(Slave)备份;
- 使用Web.Config Transformation配置灵活的配置文件
- 产品设计眼中的运营,互联网营销
- UOJ#449. 【集训队作业2018】喂鸽子
- linux查看网卡连接哪个cpu,Linux查看CPU/内存/网卡/操作系统信息
- 2010.7.27 OnDraw与OnPaint有什么区别
- Android对话框动态加载布局
- Java中反射性能测试
- 苹果清除感染 XCodeGhost 的应用
- Second copy 的增量备份
- 造移动厕所的,转做核酸采样亭。火了
- JAVA 实现《飞机大战-III》游戏
- 用python画简单的图形
- 学mysql需要英语水平多高_大学英语专业挂科率高吗
- 电机速度曲线规划_S曲线
- Hyper-V 配置静态 IP
- 虚拟机配置文件vmx放置路径问题
- 订单紧急变动?交期无法确定?APS了解一下
- Android -- 每日一问:在项目中使用AsyncTask会有什么问题吗?