Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial 防止不稳定的代码进入默认行_Mercurial_Workflow_Dvcs_Branching And Merging - Fatal编程技术网

Mercurial 防止不稳定的代码进入默认行

Mercurial 防止不稳定的代码进入默认行,mercurial,workflow,dvcs,branching-and-merging,Mercurial,Workflow,Dvcs,Branching And Merging,目前,我有2个存储库。一个存储库名为jstock,它包含所有稳定的源代码 另一个名为jstock的存储库将日历重构为joda,它是从jstock克隆而来的,它包含所有不稳定的实验特性代码 红色矩形中的所有更改集都是不稳定的实验特征代码。他们还没有完成。因此,我无意使其与绿色矩形中的变更集合并(绿色矩形表示这些变更集是稳定的变更集) 在jstock将日历重构到joda之后,从jstock提取日历,下面是它的样子。 现在,我想让实验代码对jstock可见(但不进入默认行,因为它们不稳定) 因此,当

目前,我有2个存储库。一个存储库名为
jstock
,它包含所有稳定的源代码

另一个名为
jstock的存储库将日历重构为joda
,它是从
jstock
克隆而来的,它包含所有不稳定的实验特性代码

红色矩形中的所有更改集都是不稳定的实验特征代码。他们还没有完成。因此,我无意使其与绿色矩形中的变更集合并(绿色矩形表示这些变更集是稳定的变更集)

jstock将日历重构到joda
之后,从
jstock
提取日历,下面是它的样子。

现在,我想让实验代码对
jstock
可见(但不进入默认行,因为它们不稳定)

因此,当我执行从
jstock重构日历到joda
jstock
的推送操作时,我得到的结果如下。

现在所有不稳定的代码都属于默认行

这不是我想要的。在
jstock
中,我希望稳定代码(绿色矩形)保持默认状态(左侧),不稳定代码(红色矩形)保持默认状态(右侧)。注意,我不希望它们被合并,但我希望两个开发线(稳定和不稳定)都可见


是否有任何步骤我做错了?

在这种情况下,您可能应该等待推送,并使整个存储库可用

或者,当你开始那个分支时,你应该给它起个名字。可以有多个未命名分支,它们都属于同一命名分支

换句话说,您看到的所有变更集都是
default
分支的一部分,但是标签仅显示该分支的尖端。因为新的变更集现在是提示,所以标签显示在UI中

如果您给它起了一个名字,默认分支上的tipmost变更集上的默认值仍将处于关闭状态

hg update -r 12345

要解决这个问题,您必须逐个“重播”这些变更集。我不知道最好的方法是什么,但我只想说它们会得到新的哈希值,因此任何拉取这些变更集的人都有可能将其作为默认分支的一部分推回。

在这种情况下,您可能应该等待推送,并使整个存储库可用

hg update -r 12345
或者,当你开始那个分支时,你应该给它起个名字。可以有多个未命名分支,它们都属于同一命名分支

换句话说,您看到的所有变更集都是
default
分支的一部分,但是标签仅显示该分支的尖端。因为新的变更集现在是提示,所以标签显示在UI中

如果您给它起了一个名字,默认分支上的tipmost变更集上的默认值仍将处于关闭状态

hg update -r 12345

要解决这个问题,您必须逐个“重播”这些变更集。我不知道最好的方法是什么,但可以说它们会得到新的哈希值,因此任何拉入这些变更集的人都有可能将它们作为默认分支的一部分推回。

在这种情况下,您必须在创建多个头时推送“force”。这两个头都位于“默认”分支上。这本身没有问题,但您担心的问题是,您的新头(代码不稳定)是默认分支的“尖端”

hg update -r 12345
从:

小费总是头。如果有 仅存储库中有多个磁头 其中之一就是小费。在一段时间内 存储库中,更改集已编号 按顺序,因此尖端具有 最高序列号。字眼 “提示”作为一个特殊的标签 表示tip变更集,它可以 可以在变更集ID或标记的任何位置使用 这是有效的

最好是将这些更改推送到一个命名的分支,但您已经做到了。在这种情况下,您(或第一次使用此存储库的任何人)需要将工作副本更新为默认分支的稳定部分

hg update -r 12345
(其中12345是“而非限制货币…”的修订号


对于已经拥有此存储库的开发人员,当他们拉取您的不稳定更改时,他们将看到多个标头,但他们的工作副本不会自动更新到您的新分支。

在这种情况下,您必须在创建多个标头时按下“强制”。这两个标头都处于“默认”状态分支。这本身没有问题,但您担心的问题是您的新头(代码不稳定)是默认分支的“提示”

hg update -r 12345
从:

小费总是一个头。如果有的话 仅存储库中有多个磁头 其中之一就是小费。在一个小时内 存储库中,更改集已编号 按顺序,因此尖端具有 最高的序列号。单词 “提示”作为一个特殊的标签 表示tip变更集,它可以 可以在变更集ID或标记的任何位置使用 这是有效的

将这些更改推送到命名分支会更好,但您现在就在这里。在这种情况下,您(或第一次拉取此存储库的任何人)需要更新工作副本,使其位于默认分支的稳定部分

hg update -r 12345
(其中12345是“而非限制货币…”的修订号


对于已经拥有此存储库的开发人员,当他们提取您的不稳定更改时,他们将看到多个标头,但他们的工作副本不会自动更新到您的新分支。

这也发布在Mercurial邮件列表上,如下所示:

日志查看器中两个(匿名)分支的位置并不重要:没有左侧或右侧,顺序仅取决于拉和推的顺序

您需要的是一种方法来标记来自稳定和不稳定分支的变更集,以便您能够保持