zoukankan      html  css  js  c++  java
  • 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! ");
    6. return 0;
    7. }

    新文件:
    1. ./file2.c
    2. #include <stdio.h>
    3. int main()
    4. {
    5. printf("This is version 2! ");
    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












        
  • 相关阅读:
    【OpenXml】Pptx的边框虚线转为WPF的边框虚线
    C#系列文章索引
    了解LINQ
    【爬虫系列】2. 打开App逆向“潘多拉魔盒”
    Makefile基础
    设计原则 开闭原则
    设计模式 工厂方法模式
    设计原则 接口隔离原则
    设计原则 迪米特法则
    设计原则 单一职责原则
  • 原文地址:https://www.cnblogs.com/Windeal/p/4284673.html
Copyright © 2011-2022 走看看