diff和patch 打补丁

在Linux环境下,有两个工具用来给project打补丁,即diff和patch

diff

         diff具有比较功能。可以使用man命令查看其使用方法。
 
   
  1. NAME
  2.        diff - compare files line by line
  3. SYNOPSIS
  4.        diff [OPTION]... FILES
常用选项:
          -r   是一个递归选项

-N 确保命令正确执行,文件不存在视为空

-u 使用统一格式


patch

        patch 用来打补丁。
 
   
  1. NAME
  2. patch - apply a diff file to an original
  3. SYNOPSIS
  4. patch [options] [originalfile [patchfile]]
  5. but usually just
  6. patch -pnum <patchfile

  -pnum:
    -p0 根据补丁中完整路径查找要打补丁的文件
    -p1忽略第一层目录
    ……

简单的例子

源文件
 
   
  1. ./file1.c
  2. #include <stdio.h>
  3. int main()
  4. {
  5. printf("This is version 1!\n");
  6. return 0;
  7. }

新文件:
 
   
  1. ./file2.c
  2. #include <stdio.h>
  3. int main()
  4. {
  5. printf("This is version 2!\n");
  6. return 0;
  7. }

比较两个文件,生成patch
 
   
  1. $ diff -uN file1.c file2.c >> file.patch
打上补丁:
 
   
  1. $ patch -p0 < file.patch
此时file1.c的内容变变成file2.c的内容


如果两个文件在不同目录,比如一个在remote,一个在local目录
 
   
  1. $ diff -uN Remote/file1.c Local/file2.c >> file.patch
  2. //在file.patch目录下
  3. $ patch -p0 < file.patch












    

转载于:https://www.cnblogs.com/Windeal/p/4284673.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值