在一个 mercurial 存储库中,“默认”分支已经过时,以至于合并来自“开发”的更改不再有意义,“开发”是一个具有应用程序最新部署版本的命名分支。
我如何关闭当前的默认分支,然后使用开发的头创建一个新的默认分支,而不是将开发合并为默认分支?
我已经看到了一些其他类似的问题和答案,也许相同,但我仍然无法理解这应该如何工作。
谢谢!
在一个 mercurial 存储库中,“默认”分支已经过时,以至于合并来自“开发”的更改不再有意义,“开发”是一个具有应用程序最新部署版本的命名分支。
我如何关闭当前的默认分支,然后使用开发的头创建一个新的默认分支,而不是将开发合并为默认分支?
我已经看到了一些其他类似的问题和答案,也许相同,但我仍然无法理解这应该如何工作。
谢谢!
如果与合并后default
有所不同,develop
并且您希望与合并后default
完全相同develop
,则需要一组与 Edward 给您的命令略有不同的命令(这也适用于develop
的直接后代default
)。
hg update -C default
hg -y merge --tool internal:fail develop
hg revert --all --no-backup -r develop
hg resolve --all --mark
hg commit -m "merge updating default to current develop"
这意味着任何冲突都将导致未解决的合并。然后,您将所有内容恢复为与分支上的相同develop
(没有备份,因此您不会留下很多 .orig 文件)。
根据您的评论,关闭分支不是必需的,这里有一系列步骤应该使默认分支与开发分支保持一致:
hg update default
hg merge --tool internal:other
-- 在获得开发分支特权的同时进行合并 hg diff -r develop
-- 与 develop 进行比较以确保您拥有准确的副本 hg commit -m "merge updating default to current develop"
完成后,您应该有一个更新的默认值来反映开发分支,使它们重新同步。
我认为最好使用 Tortoisehg 中的一个概念来解释它是如何工作的。
hg update
发展分支hg branch default
,默认重新启动