您的位置:首页 > 其它

diff和patch 打补丁

2014-08-12 23:05 113 查看
在Linux环境下,有两个工具用来给project打补丁,即diff和patch


diff

        diff具有比较功能。可以使用man命令查看其使用方法。

NAME

       diff - compare files line by line


SYNOPSIS

       diff [OPTION]... FILES


常用选项:

        -r 是一个递归选项

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

-u 使用统一格式


patch

       patch 用来打补丁。


NAME

patch - apply a diff file to an original


SYNOPSIS

patch [options] [originalfile [patchfile]]


but usually just


patch -pnum <patchfile


  -pnum:

    -p0 根据补丁中完整路径查找要打补丁的文件

    -p1忽略第一层目录

    ……


简单的例子

源文件

./file1.c

#include <stdio.h>


int main()

{

printf("This is version 1!\n");

return 0;

}


新文件:

./file2.c

#include <stdio.h>


int main()

{

printf("This is version 2!\n");

return 0;

}


比较两个文件,生成patch

$ diff -uN file1.c file2.c >> file.patch


打上补丁:

$ patch -p0 < file.patch


此时file1.c的内容变变成file2.c的内容

如果两个文件在不同目录,比如一个在remote,一个在local目录




$ diff -uN Remote/file1.c Local/file2.c >> file.patch

//在file.patch目录下

$ patch -p0 < file.patch


    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: