[svn] 制作补丁的经验

来源:互联网 发布:淘宝qq号买卖 编辑:程序博客网 时间:2024/05/23 01:59

在Windows和Mac上制作svn patch的一些经验,记下来省出大家的精力。


1. 制作补丁的首选工具:TortoiseSVN。

它最大的优点就是尊重代码文件里的换行符(EOL,End-Of-Line)。它做出的补丁既可用于Windows,也可用于Mac。

习惯上,我制作补丁时要勾选下面的选项,这样做出的补丁小(因为可以忽略代码中许多无关的改变):



2. 在Mac上制作补丁稍复杂一些,因为我只用命令行。以后有时间我要制作一个Python GUI的脚本,让Mac上打补丁更方便。

我使用的打补丁命令为:svn diff . -x --ignore-eol-style > mylib.patch

我发现,从Mac OS X 10.10 (Yosemite)开始,svn diff终于能够和TortoiseSVN一样,尊重源文件的EOL了。所以在Mac上做补丁也方便了不少。原来我都是做完补丁之后,手工修复diff文件的EOL的,既麻烦又容易出错。


3. 扩充补丁。

升级库以后,补丁也需要重新制作。此时,一般都是整个补丁都重新做一遍。

但是还有一种情况,就是扩充补丁。即,只是往原补丁里添加新的diff。这样,其实无需重新做整个补丁。只要做一个只包含新diff的补丁,然后添加到原补丁里就行了。

用DOS命令即可:copy /b mylib.patch + new_diff.patch mylib.patch

其实可以更简单:svn diff one_file.cpp >> mylib.patch 这种方式可以用于Windows和Mac。

0 0