虽然现在各种版本控制工具大行其道,但是有时候还是需要使用相对原始一些的办法提交补丁,制作补丁其实很简单,用 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 一样聪明的程序嘛!
-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
这样基本上日常使用就没有什么问题了!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。