重建/重建mercurial存储库

时间:2014-04-08 07:49:10

标签: version-control mercurial branch rename

首先:我知道hg分支是不可变的,不能重命名。我也知道hg存在mutable branches extension。但我更喜欢采用不同的方法,因为我无法确定所有开发人员都安装并激活它,它仍然只是“扩展”。

我的问题:我们有一个包含大约20个分支的回购。由于各种原因(缺乏经验的使用,糟糕的选择,成为生产环境的实验),其中一些分支被严重命名,现在我们的回购有点令人困惑。我们想要做的是重命名其中的一些分支,因为很明显,我们与它们合作的越多,它就越成为问题。

你有什么建议吗?我已经想到了一个“工具”或某种脚本,它从头开始重新创建整个仓库,获取旧仓库的变更集并将它们 - 用新的分支名称 - 提交给新的仓库,“重建”它。但在我开始浪费时间写这样的东西之前,我想听听是否有其他可能性。

仅供参考:大约有600个提交,并且各个分支机构经常合并。

1 个答案:

答案 0 :(得分:4)

您可以使用hg convert执行 Mercurial to Mercurial 转换来重建存储库。首先启用convert extension并创建branchmap以将分支名称从旧映射到新映射:

a-bad-name new-name
another-bad-name better-name

例如,您可以使用它将多个坏名称映射到一个好名称中。

转换后,您将拥有一个具有相同历史记录但具有不同分支名称的新存储库。变化集哈希值因此会有所不同,人们将不得不重新开始(但我认为你已经意识到了这一点)。