Mercurial 用 hg qimport 和 qfresh 来合并未提交代码

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

刚才发现自己的某一个 hg 工作目录里还有少量的修改没有提交,通过 hg diff 发现自己只是改了一个很显的 spring 使用错误,我不想针对这次修改再做一次单独的提交,而是想把它合并到此前的那次提交里,我该怎么办呢?

如果我在一开始用的是 hg qnew 的方法来提交代码的话,那么问题就变的很简单了,我只需运行 hg qrefresh 即可。但是我当初用的是 hg ci,也就是说,本地并没有一个被 queue 管理的 patch 可以刷新。那么,是不是还可以通过 qrefresh 的方法来解决呢?

答案是肯定的,只不过要多走一步:

* 首先,运行下面的命令,把 tip 导入 hg queue:

hg qimport -r tip

* 然后就可以做 qrefresh 了:

hg qrefresh

值得一提的是,hg qimport 除了可以把一个指定的已提交版本(比如在上面例子中的 tip)导入 queue 中之外,还可以从一个指定的文件里导入。在实际项目开发中,我和同事们常用这种方法在不同机器之间共享 patch,非常方便。

http://dyang.github.com/scm/2009/06/20/qimport.html

多谢搂主的帖子,学习了

需要 登录 后方可回复。