4

我已经使用源代码控制系统大约 10 年了,显然每个系统都有自己的习语和实践。

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

我们开发了一个基线产品,它是一种滚动发布。一些客户需要精简产品(由于获得更便宜的许可证)或完成定制工作。我倾向于分支“主干”(Mercurial 中的默认分支),进行定制工作并创建构建。

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

这很好用,但是定制分支很快就会充满与“主干”相关的提交,而不是真正的定制功能。这意味着当我需要查看此分支的变更集时,它们会很混乱。

我真正希望它转移分支“连接点”开始的位置,因此定制变更列表仅包含定制签入,但定制分支的父级发生了变化。

我尝试使用 rebase 扩展,因为它看起来应该这样做,但它反而做了很多合并并且仍然使我的定制分支变得混乱。

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

4

1 回答 1

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 的图表截图

合并

于 2012-10-10T18:47:43.620 回答