我一直在使用源代码管理系统大约10年,每个系统显然都有自己的习语和习惯。
我目前正在使用Mercurial进行.NET开发,并且特别要求我想知道您的意见是什么才能最好地实现我的目标。
我们开发的基线产品是一种滚动版本。一些客户需要减少产品(由于获得更低的许可证)或定制的工作。我倾向于分支“trunk”(Mercurial中的默认分支),做定制工作并创建构建。
当在“trunk”中完成新工作并且我需要来自定制分支的新构建时,我将使用hg merge -r CHANGESET_NUM_FROM_DEFAULT_HERE
合并更改,然后进行构建。
这样可以正常工作,但是定制分支很快就会被与“trunk”相关的提交所填充,而不是真正的bespoking功能。这意味着当我需要查看此分支的变更集时,它们就会混乱。
我真正希望它转移到分支“交汇点”开始的位置,因此定制的更改列表仅包含定制的签到,但定制分支的父级更改。
我尝试使用rebase扩展,因为它看起来应该这样做,但它会进行很多合并,但仍然会使我的定制分支混乱。
有没有办法保持我的定制分支清洁?或者我是以错误的方式处理事情的?
答案 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的图表截图