Mercurial 有选择地创建 Mercurial patch

laofo · 2010年04月22日 · 17 次阅读

作者:dyang 转载:http://dyang.github.com/scm/2008/10/05/hg-qnew.html

在使用 mercurial 的过程中,有时我们需要基于当前修改的文件的一部分来创建 patch。举例来说,在修改了多个文件之后,你忽然发现其中的几处修改属于一个重构,而另一些修改则是在添加新的功能。你想把重构的那部分修改独立出来,这样你就可以自由选择什么时候提交重构,什么时候提交新功能了。

一种解决办法是创建 patch。hg qnew 命令提供了-X 和-I 参数来指定哪些文件中的修改应该被排除或者添加到 patch 之中。

比如,你目前已经改动了 file1 和 file2,而你只想把 file1 的修改纳入 patch 之中。那么就可以执行:

hg qnew -m ‘patching changes to file1…’ -f mod_file1.diff -I file1

或者:

hg qnew -m ‘patching changes to file1…’ -f mod_file1.diff -X file2

你也可以用下面的命令来达到同样的效果:

hg qnew -m ‘patching changes to file1…’ -f mod_file1.diff file1

这样生成的 patch 就只包含对 file1 的修改了。

暂无回复。
需要 登录 后方可回复。