加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

How to make a patch

发布时间:2020-12-15 20:53:35 所属栏目:大数据 来源:网络整理
导读:虽然现在各种版本控制工具大行其道,但是有时候还是需要使用相对原始一些的办法提交补丁,制作补丁其实很简单,用 diff 命令,加上 -u 参数生成带有上下文的 unified 格式的 diff 文件,就是一个 patch 了。可是最容易忘记的地方就是后面的参数是先写未修改

虽然现在各种版本控制工具大行其道,但是有时候还是需要使用相对原始一些的办法提交补丁,制作补丁其实很简单,用 diff 命令,加上 -u 参数生成带有上下文的 unified 格式的 diff 文件,就是一个 patch 了。可是最容易忘记的地方就是后面的参数是先写未修改过的版本呢还是先写修改过的版本。我自己每次都记不住,要去查 man page 。正好今天收到一个 patch ,发现里面的修改都是反过来的,大概也是参数写反了吧。

^_^

所以我终于决定把正确的用法记下来:

diff -u original new > original.patch

希望自己能记住,就算记不住也能方便地在此查到。

:)

Update 2008-08-02 : 应用 patch 的方法,很简单,只要

patch < original.patch

就可以了,因为 patch 是 Larry Wall 写的如同 Perl 一样聪明的程序嘛!

:D

不过有时候还需要加上 -p 参数,例如,patch 是这样的:

--- foo/bar.c   2008
-08-02 08:19
:03.000000000
 -0400
+++ foo_new/bar.c       2008
-08-02 08:19
:22.000000000
 -0400

@@ -2,6
 +2,6
 @@

?
 int main(
int argc,char *argv[
]
)

 {

-       printf(
"hello world/n")
;

+       printf(
"Hello world!/n")
;

        return 0
;
 }

生成 patch 的时候是在上一层目录生成的,因此需要用 -p1 略过一层目录:

patch -p1 < ../bar.patch

这样基本上日常使用就没有什么问题了!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读