在Git中管理多项目分支



在Maven项目/SCM场景中,是否有工具可以实现以下抽象操作?

  • 给定一个应用程序项目,为该应用程序及其使用的所有快照库创建分支;这些分支应该作为一个逻辑分支进行管理(见下一页)
  • 给定应用程序项目的逻辑分支,发布它(通过运行Maven发布版);这意味着释放多个分支,每个库一个

背景(原件):

正如您所知,Git建议使用每个项目的存储库结构范式。同时,任何严肃的项目,在我们的案例中是基于Maven的,都附属于几个内部库。在任何sprint过程中,项目和它所附加的库都会被修改。在Git世界中,这意味着修改将存在于多个Git存储库中。

如果我们想在sprint中分支工作,也许是因为我们使用Gitflow,它邀请我们在sprint结束时创建一个发布分支,那么我们如何在sprint涉及的所有库中以逻辑方式进行分支,而不是手动分支每个库?

一个Maven感知工具(一个可以内省POM以找出可传递快照依赖列表的工具)会更好。

我可以在代表我的一个逻辑分支的多个物理分支(每个项目一个)之间创建逻辑关系吗?

Git或某些Git工具支持逻辑分支吗?

我希望你不要说子模块。我在这里想要的是抽象出VCS的细节,而不是成为Git大师。此外,我希望尽可能在一个操作中完成任务,因为必须单独分支每个库很容易出错,而且很容易被忘记。

设置Jenkins服务器。

它可以将每个maven模块构建为一个单独的项目,然后自动重建任何其他具有快照依赖关系的项目。

更新

Jenkins的GIT插件有一个功能,用于管理开发功能分支自动合并为"主"或"集成"分支。请参阅文档:

https://wiki.jenkins-ci.org/display/JENKINS/Git+插件#GitPlugin AdvancedFeatures

另一种选择是使用Gerrit这样的代码审查工具来控制特性开发。Gerrit控制集成到共享代码流中的更改,Gerrit可以与Jenkins集成,以确保所有提交的更改集都通过代码测试。

最后,使用M2发布插件对版本进行剪切,M2发布插件是标准发布插件的包装。(这意味着Jenkins中总是有两种类型的构建。由代码提交触发的自动构建和通过UI显式触发的发布构建)。

看看我在寻找关于Gitflow的其他东西时发现了什么:https://github.com/nvie/gitflow

它不适用于Maven,所以它不符合我的需求,但也许它对你有帮助。

最新更新