gpt4 book ai didi

mercurial - Maven Mercurial 发布流程

转载 作者:行者123 更新时间:2023-12-02 23:37:20 25 4
gpt4 key购买 nike

我们最近改用了 Mercurial。看完这个有用的视频后: http://www.youtube.com/watch?v=-k2vLKOUb8s&noredirect=1

我正在尝试实现一个允许执行以下操作的发布流程:- Maven 发布独立于正在进行的开发工作- 修补已发布的版本,然后将修复推送回开发人员

到目前为止我已经想出了这个: Repo Arch

这使我们能够在开发存储库上继续开发的同时针对稳定存储库进行发布。

我遇到的问题是 Maven 发布插件。如果我要发布 1.0.0-SNAPSHOT,我最终会在稳定存储库中得到以下内容:1.0.0-快照->1.0.0->1.1.0-快照

现在我可以将其推回到开发存储库,并且开发将在 1.1.0-SNAPSHOT 上继续。到目前为止一切顺利。

但是管理 1.0.0 版本和后续补丁的最佳方法是什么?我应该从 1.0.0 提交点还是另一个克隆创建一个分支?是否有其他方法来管理它,以便进行 1.0.1 修复的开发人员可以轻松应用它并将修复推送回开发人员?

最佳答案

你的设置听起来不错。我会做一个新的long-term named branch基于 1.0.0 版本的变更集。保留您的development on the default branch并为每个版本创建分支。

这里我将版本号写在 POM 变更集的上方和下方,并将分支名称一直写在左侧:

          1.0.0-SNAPSHOT    1.0.0    1.1.0-SNAPSHOT
default: o --- o --- o --- o ------ o --- o --- o --- o --- o --- o
\ /
1.0.x: o --- o --- o --- o -------- o --- o --- o
1.0.1-SNAPSHOT 1.0.1 1.0.2-SNAPSHOT

因此,您可以使用 default 分支在 1.0.0-SNAPSHOT 版本上愉快地工作。当需要发布时,插件会创建一个 1.0.0 的变更集,并立即创建另一个 1.1.0-SNAPSHOT 的变更集,所有这些都在 default 分支上。

您现在或以后可以分支到 1.0.x 版本 - 没关系。当你做你的分支时

$ hg update 1.0.0  # <- this is a tag
$ hg branch 1.0.x
# edit the POM to change version to 1.0.1-SNAPSHOT
$ hg commit -m "Started 1.0.x branch"

开发人员现在可以随时使用

$ hg update 1.0.x  # <- this is a branch

获取该分支上的最新变更集,hg update default 返回开发主线。当变更集在 1.0.x 分支上提交时,您需要将它们 merge 回 default,以便修复该处的错误:

$ hg update default
$ hg merge 1.0.x
$ hg commit -m "Merge in bugfix-123 from 1.0.x"

现在,在服务器上选择一两个存储库基本上是无关紧要的。您可以使用命名分支来区分稳定变更集(它们位于 1.0.x 上)和不太稳定的变更集(它们位于 default 上)。然而,在服务器上为每个稳定版本保留一个存储库通常是很有意义的。您可以在 Jenkins 中设置作业或使用 cronjobs 来执行

$ cd foo-1.0.x
$ hg pull --branch 1.0.x

定期进行,以便克隆保持最新状态。您还可以在主开发存储库中创建一些 changegroup Hook ,如下所示:

[hooks]
changegroup.1.0.x = hg push --branch 1.0.x ../foo-1.0.x
changegroup.1.1.x = hg push --branch 1.1.x ../foo-1.1.x

开发人员必须等待 Hook 完成,但当您只是在本地存储库之间推送时,它应该很快。如果这是一个问题,请使用异步同步机制(Jenkins、cronjob...)。

关于mercurial - Maven Mercurial 发布流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9107755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com