How to make a 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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值