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












        
  • 相关阅读:
    注册界面测试案例注意点
    linux常用命令
    linux常用快捷键总结
    2015.8.29某高级企业的在线笔试题
    图像处理------直方图均衡化
    “猫叫系统”开启了观察者模式
    Hua Wei 机试题目四---2014
    Hua Wei 机试题目三---2014
    Hua Wei 机试题目二
    Hua Wei 机试题目一
  • 原文地址:https://www.cnblogs.com/Windeal/p/4284673.html
Copyright © 2011-2022 走看看