重命名仅限本地的mercurial分支?

时间:2017-11-01 18:21:32

标签: mercurial bitbucket

我发现很多关于重命名已经被其他人推/拉的hg分支的问题,但是我在这里遇到了一些情况,其中已经对一组分支(总共10个)进行了工作所有人都有错误" name - 在repb(在bitbucket.org上)对分支命名有限制的意义上的错误。

任何开发人员都可以打开一个名为app-feature-xxxx的新分支(其中xxxx可以是任何东西),但是新的开发人员完成了大量的工作,并且没有任何分支遵循这种命名模式(分支是实际上是没有app-feature-前缀的xxxx部分)

目前这些分支机构只在他的机器上知道 - 它们从未被推送到BitBucket.org,也没有被其他任何人拉过来

在他们被推之前,他们可以在原位重新命名吗?现在hg正试图用这些分支名称将他的历史记录提交给BitBucket并且它失败了。如果在这之前可以重新命名分支,那么一切都应该是金色的......并且通常没有#34;但是其他所有人的历史呢?"问题,因为只有一个人有这些提交..

我现在能够提出的最简单的方法是再次克隆回购,只需创建一个app-feature-lotsofupdates分支,然后继续在原始仓库中切换工作副本,并使用差异工具将原始仓库中的代码(具有错误的名称)应用于这个新克隆的仓库,在每个差异/复制后提交 - 有效地将所有各种功能手动合并到一个分支中(然后将合并到生产中)< / p>

1 个答案:

答案 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

Documentation.