Mercurial功能 - 保持定制工作清洁最佳实践?

时间:2012-10-10 11:32:57

标签: version-control mercurial workflow branch rebase

我一直在使用源代码管理系统大约10年,每个系统显然都有自己的习语和习惯。

我目前正在使用Mercurial进行.NET开发,并且特别要求我想知道您的意见是什么才能最好地实现我的目标。

我们开发的基线产品是一种滚动版本。一些客户需要减少产品(由于获得更低的许可证)或定制的工作。我倾向于分支“trunk”(Mercurial中的默认分支),做定制工作并创建构建。

当在“trunk”中完成新工作并且我需要来自定制分支的新构建时,我将使用hg merge -r CHANGESET_NUM_FROM_DEFAULT_HERE合并更改,然后进行构建。

这样可以正常工作,但是定制分支很快就会被与“trunk”相关的提交所填充,而不是真正的bespoking功能。这意味着当我需要查看此分支的变更集时,它们就会混乱。

我真正希望它转移到分支“交汇点”开始的位置,因此定制的更改列表仅包含定制的签到,但定制分支的父级更改。

我尝试使用rebase扩展,因为它看起来应该这样做,但它会进行很多合并,但仍然会使我的定制分支混乱。

有没有办法保持我的定制分支清洁?或者我是以错误的方式处理事情的?

1 个答案:

答案 0 :(得分:1)

您的定制分支现在清洁。但是 - 如果你不想在分支日志中看到合并集,只需跳过日志

hg help log

  

选项:

     

...

     

-M --no-merges不显示合并

hg log -r 55:tip --template "{branch}:{rev}\n" -b default

  

默认:55

     

默认:56

     

默认:57

     

默认:60

     

默认:61

     

默认:63

     

默认:65

     

默认:66

hg log -r 55:tip --template "{branch}:{rev}\n" -b default -M

  

默认:55

     

默认:56

     

默认:57

     

默认:61

     

默认:65

     

默认:66

来自THG的图表截图

Merges