不做部分提交"Mercurial方式"

Dav*_*les 12 mercurial dvcs

Subversion商店考虑转向Mercurial,试图提前弄清楚开发商的所有投诉是什么.这里有一个相当常见的用例,我看不懂如何处理.

  1. 我正在研究一些较大的功能,而且我的代码中有很大一部分 - 或者可能是代码的几个重要部分 - 整个车库地板都是碎片,完全不适合签入,甚至可能不编译.
  2. 一个紧急的错误修正请求进来.修复很好,本地,并没有触及我一直在努力的任何代码.
  3. 我在我的工作副本中修复了.

怎么办?

我看过" Mercurial cherry pick for commit for commit "和" mercurial中的最佳实践:分支与克隆,以及部分合并? ",所有建议似乎都是不同复杂程度的扩展,从Record和Shelve到Queues.

事实上,显然没有任何核心功能,这让我怀疑在某种意义上这种工作方式是做错了.这个用例的类似Mercurial的解决方案是什么样的?


编辑补充: git的,相比之下,似乎专为这个工作流程:git add修正错误的文件,没有git add任何东西(或者git reset HEAD你可能已经添加任何东西), git commit.

Pau*_*han 8

以下是我处理案例的方法:

  1. 有一个开发分支
  2. 有功能分支
  3. 有个人分支
  4. 有一个稳定的分支.

在您的场景中,我会频繁地提交到功能分支的分支.

当请求进来时,我会将hg up -r XYZXYZ作为它们正在运行的转速号码,然后从中分支一个新的功能分支(或者up branchname其他).

执行工作,然后在测试工作后合并到稳定分支.

切换回我的工作并从顶部功能分支提交节点合并,从而整合两个工作流.


ava*_*kar 6

Mercurial的许多有用功能都以扩展的形式提供 - 不要害怕使用它们.

至于你的问题,record提供你所谓的部分提交(它允许你选择你想要提交的更改).另一方面,shelve允许暂时使您的工作副本清洁,同时在本地保留更改.提交错误修复后,您可以取消更改并继续工作.

解决此问题的规范方法(即仅使用核心)可能是制作克隆(请注意,当创建硬链接而不是副本时,本地克隆很便宜).


归档时间:

查看次数:

3240 次

最近记录:

13 年,3 月 前