【发布时间】:2015-09-22 06:00:06
【问题描述】:
在尝试解决Kiln 和Bamboo 之间的集成时,我遇到了一个问题,Fog Creek 支持人员指出这可能是我的存储库中有太多拓扑头的问题。我们通常会在合并回主分支之前关闭一个分支,但这显然会不时被遗忘。
$ hg head -t | grep ^changeset: | wc -l
1361
我的理解是,当从托管 Mercurial 服务器拉出时,这些头需要以一种或另一种方式进行通信,以了解哪些头需要同步。考虑到其中 1100 多个头对我们来说已经完全死去,这是很多浪费的努力——所以我想摆脱这些头!
识别我想要消除的头部相当简单:
$ hg log -r "heads(all()) - ( head() and not closed() )" --template "{node}\n" | wc -l
1199
我最初认为清理它会相当简单:
- 创建一个新的虚拟分支
- 迭代地将所有封闭的拓扑头合并到虚拟分支中(保持本地)
不幸的是,我遇到了几个问题:
- 如果我从当前的默认 head 启动虚拟分支,合并需要很长时间(我估计完成所有 1100 多个合并需要数周时间)
- 如果我从变更集 0 开始,我很快就会遇到我不知道如何解决的模棱两可的合并问题(“模棱两可的合并 - 选择 m 动作”?)
关于我应该如何进行的任何想法或建议?我的迭代合并想法是否合理?关于从哪里开始的两个想法之一是否比另一个更合理?
非常感谢任何帮助!
【问题讨论】: