我发现很多关于重命名已经被其他人推/拉的hg分支的问题,但是我在这里遇到了一些情况,其中已经对一组分支(总共10个)进行了工作所有人都有错误" name - 在repb(在bitbucket.org上)对分支命名有限制的意义上的错误。
任何开发人员都可以打开一个名为app-feature-xxxx
的新分支(其中xxxx可以是任何东西),但是新的开发人员完成了大量的工作,并且没有任何分支遵循这种命名模式(分支是实际上是没有app-feature-
前缀的xxxx部分)
目前这些分支机构只在他的机器上知道 - 它们从未被推送到BitBucket.org,也没有被其他任何人拉过来
在他们被推之前,他们可以在原位重新命名吗?现在hg正试图用这些分支名称将他的历史记录提交给BitBucket并且它失败了。如果在这之前可以重新命名分支,那么一切都应该是金色的......并且通常没有#34;但是其他所有人的历史呢?"问题,因为只有一个人有这些提交..
我现在能够提出的最简单的方法是再次克隆回购,只需创建一个app-feature-lotsofupdates
分支,然后继续在原始仓库中切换工作副本,并使用差异工具将原始仓库中的代码(具有错误的名称)应用于这个新克隆的仓库,在每个差异/复制后提交 - 有效地将所有各种功能手动合并到一个分支中(然后将合并到生产中)< / p>
答案 0 :(得分:0)
您可以使用转换扩展程序Mercurial和branchmap
选项。
分支图是一个允许您重命名分支的文件 从任何外部存储库引入。用于 与splicemap结合,它允许强大的组合 帮助修复即使是最糟糕的管理不善的存储库并转换它们 进入结构良好的Mercurial存储库。分支图包含 形式的行
original_branch_name new_branch_name
original_branch_name是名称 源存储库中的分支,new_branch_name是 分支的名称是目标存储库。
执行此操作的命令行将类似于:
hg convert
--branchmap branchmap.txt
path\to\source\repo
path\to\converted\repo