在Hg中关闭不需要的分支但是回溯了那个

时间:2014-05-27 08:35:24

标签: mercurial

我有很多项目已经启动,很快就会在我的框架之上关闭。我经常要为他们做些修复。所以我们决定为每个这样的项目维护一个单独的命名分支会很好。

问题是我想在项目完成时关闭分支,但是在项目上工作的团队是远程的,我通常不知道项目的状态。我可以每个月向团队询问哪些项目已经关闭,但项目通常很短,我们有5-10个项目直到月底。我不想打扰他们,每天都在问。

如果我在每个月的第一天关闭它们,我会收到这张照片:

Example of how Workbench shows the closed branches

哪个有点难看。我怎么能关闭分支,但把关闭标记放在树中的分支之后而不是现在?我可能正在寻找一种方法来改变历史,但是不要改变,而是改变变更集的“修订版号”和“创建日期”,以便对它进行不同的排序。

还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

这只是美学,改变它的外观没有价值。这个月的几天,直到下个月你才会再次看到这种模式。

如果你真的想要这样做,要知道repo不关心提交的日期,它只关心它何时被添加到它,无论是直接提交还是推/拉。所以我们的想法是重新排序它们的添加方式。您无需更改历史记录,只需重新排列更改集即可。

该方法是将repo克隆到初始提交,并将一个封闭的分支拉到另一个之后。它看起来像这样:

hg clone <repo> -r1
hg pull -b <closed-branch-1>
hg pull -b <closed-branch-2>
...
hg pull

最后一步是检索活动分支中的剩余变更集。

之后,如果您对它的外观感到满意,可以使用这个新的主仓库替换主仓库。