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 - Fatal编程技术网

在新位置继续mercurial分支

在新位置继续mercurial分支,mercurial,Mercurial,我有一个分支dev,它已合并到release分支中,以形成发布提交 我希望在合并提交之后重新打开dev,这样我的存储库就有了一个可视化的“扇入扇出”样式。我的意思是,所有提交和分支都聚合到我的发布提交中,然后为下一个发布工作,并从中分离出来。这使得在视觉上很容易看到每个版本中包含的内容,因为它使它们在标记的发布提交之间保持隔离 结果是dev不再是一个连续的分支,我想知道这在mercurial中是否可行 当我在发布后再次尝试hg branch dev时,mercurial抱怨它已经存在。即使我在合

我有一个分支
dev
,它已合并到
release
分支中,以形成发布提交

我希望在合并提交之后重新打开
dev
,这样我的存储库就有了一个可视化的“扇入扇出”样式。我的意思是,所有提交和分支都聚合到我的发布提交中,然后为下一个发布工作,并从中分离出来。这使得在视觉上很容易看到每个版本中包含的内容,因为它使它们在标记的发布提交之间保持隔离

结果是
dev
不再是一个连续的分支,我想知道这在mercurial中是否可行

当我在发布后再次尝试
hg branch dev
时,mercurial抱怨它已经存在。即使我在合并分支后使用say
——close分支
进行提交

因此,目前我的解决办法是: (1) 为每个版本使用不同的
dev版本
,该版本更容易编写脚本或 (2) 在
release
的同时运行
dev
,并不断地从
dev
合并到
release
中,这并不坏,只是对于我们特定的发布过程来说有点混乱

我知道这似乎是一个非标准的mercurial发布过程。这将非常适合我们特定的项目和团队结构

谢谢你的帮助


编辑

为了让我的意思更清楚一点,假设我将
feature-01
分支合并到
dev
中,然后将
dev
合并到
release
中,以创建
release-1.1
。然后我想创建一个新的
feature-02
分支,该分支合并到
dev
中,具有如下可视化效果:

@    changeset:   6:4bcc59fe6ded
|\   branch:      dev
| |  summary:     Merge feature-02
| |
| o  changeset:   5:8e117ffe64d0
| |  branch:      feature-02
| |  summary:     Add d
\ |
  o  changeset:   4:c39dae3ff2fa   <---- all commits converge to here then diverge back out
 /|  branch:      release
| |  summary:     Release v1.1
| |
o |    changeset:   3:c89af2b3e8db
| |    branch:      dev
       summary:     Merge feature-01
我可以更改我的流程,以便新版本后的第一个功能分支直接从
release
分支,但这会使流程更难编写脚本,并将问题延迟到我必须将其合并到
dev

...
# Start a new feature branch
#hg update dev
#hg update release
hg branch dev # <--- changed
hg branch feature-02
...
因此,如果我使用与上面相同的脚本,但稍微修改一下:

...
# Start a new feature branch
#hg update dev
hg update release # <--- changed to release
hg branch feature-02
...
我收到一个错误:
中止:同名分支已存在


我希望这有助于使它更清楚!谢谢你的帮助

完成合并后,只需执行
hg update dev
并开始提交即可。您不需要关闭和重新打开分支。您不需要创建新分支。

谢谢Nathan-这听起来像是我问题中的选项(2),这就是我目前正在做的。我不认为它会给出我所追求的“扇入扇出”风格。它会的,如果你不相信我的话,请看带有hg log-G的变更集图。即使您的新更改在dev上,它们仍然是该版本的拓扑子版本。再次感谢。我更新了我的问题,试图让它更清楚。我试过你说的,但没有得到我想要的,所以可能是沟通错误。你能看看我的示例脚本并告诉我如何更改我的玩具示例的命令吗?
...
# Start a new feature branch
#hg update dev
hg update release # <--- changed to release
hg branch feature-02
...
@    changeset:   6:4bcc59fe6ded  <---- has the previous `dev` as a parent
|\   branch:      dev
| |  summary:     Merge feature-02
| |
| o  changeset:   5:8e117ffe64d0
| |  branch:      feature-02
| |  summary:     Add d
| |
| o  changeset:   4:c39dae3ff2fa
|/|  branch:      release
| |  summary:     Release v1.1
| |
o |    changeset:   3:c89af2b3e8db
|\ \   branch:      dev
|| |   summary:     Merge feature-01
...
...
# Start a new feature branch
#hg update dev
#hg update release
hg branch dev # <--- changed
hg branch feature-02
...