当前位置: 首页 > ds >正文

patch补丁文件格式

linux补丁文件格式

“补丁” 指的是文件之间一系列差异。

在原始文件的基础上进行修改后,然后根据所做的修改生成补丁文件(使用diff命令)。

一个持有原始文件的人,将该补丁打到原始文件上(使用patch命令),就变成了修改后的文件。

1. 创建两个实验文件

  • 原文件:1.txt
this is a test
for patch file format
so let us go!
  • 修改后的文件:2.txt
this is a test
for linux patch file format
so let us go!
learn it

2. 生成补丁文件

diff -u 1.txt 2.txt > diff.patchvim diff.patch

生成的补丁文件内容如下:

1 --- 1.txt       2020-07-20 16:45:27.131654289 +0800
2 +++ 2.txt       2020-07-20 16:46:26.348728016 +0800
3 @@ -1,3 +1,4 @@
4  this is a test
5 -for patch file format
6 +for linux patch file format
7  so let us go!
8 +learn it

3.补丁头

1 --- 1.txt       2020-07-20 16:45:27.131654289 +0800
2 +++ 2.txt       2020-07-20 16:46:26.348728016 +0800

“—” 表示旧文件(原文件)

“+++” 表示新文件(修改后的文件)

补丁头记录了原始文件和修改后的文件的文件名和创建时间。

4.块

补丁中的块是用来说明文件的改动情况。他们通常以@@开始,结束于另一个块的开始或者一个新的补丁头

3 @@ -1,3 +1,4 @@
4  this is a test
5 -for patch file format
6 +for linux patch file format
7  so let us go!
8 +learn it

5.块的缩进

3 @@ -1,3 +1,4 @@
4  this is a test
5 -for patch file format
6 +for linux patch file format
7  so let us go!
8 +learn it

块会缩进一列,该列有三种情况:

  • 以 “-” 开头的行,表示改行只在原始文件中存在,比如第5行

  • 以 “+” 开头的行,表示改行只在修改后的文件中存在,比如第6行和第8行

  • 以空格开头的行,表示改行在原始文件和修改后的文件中都存在,比如第4行和第7行

从打补丁的角度来看,这一列是用来表示这一行是要增加还是要删除的;

  • 以 “-” 开头的行是要删除的

  • 以 “+” 开头的行是要加上的

  • 以空格开头的行保持不变

http://www.xdnf.cn/news/11095.html

相关文章:

  • 山东大学高频电子线路实验三 正弦波振荡器实验详解_三点式正弦波振荡器实验报告(1)
  • [转]游戏外挂开发
  • python之torchlight使用_《火炬之光2》功能型MOD制作教程
  • 常用的开源网站框架
  • 计算机毕业设计Java彩票在线购买系统(源码+系统+mysql数据库+lw文档)
  • JSP自定义标签开发(五)——标签类获取 request 、 session
  • 思科模拟器-交换机与路由器的配置
  • MS08-067 漏洞利用与安全加固,高级网络安全程序员必会
  • Delphi中ExtractFilePath()及其相近函数用法
  • 【Typst】2.Typst标记语法和基础样式
  • easylogger的移植使用
  • Java高级 | 【实验一】Spring Boot安装及测试 最新
  • STM32单片机编程中标志变量的思想无处不在
  • pip安装python第三方库报错
  • 【python 中的Session 爬取数据案例实践——突发事件预警信息发布网数据抓取】
  • 使用 Python 制作 GIF 动图,并打包为 EXE 可执行程序
  • Ubuntu系统安装与配置NTP时间同步服务
  • 【Harmony OS】作业五 数据存储
  • leetcode题解98:验证二叉搜索树。(中序遍历!!!BST要点!)
  • RHEL7安装教程
  • 黑马程序员TypeScript课程笔记2(11-20)
  • 供应链攻击难以防范 供应商成“安全漏洞”
  • C# CallerMemberName特性
  • JavaScript 核心原理深度解析-不停留于表面的VUE等的使用!
  • MicroROS简述
  • 中和农信如何破解小微农户融资难题
  • 【笔记】用命令手动下载并安装 tokenizers 库.whl文件(Python 3.12+)
  • CppCon 2014 学习:Return values take a ”closure” walk
  • 笔记︱数据科学领域因果推断案例集锦(第三弹)
  • 电商仓储出入库操作指引