首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Vincent Driessen的分支模型在git存储库中进行Maven版本控制

使用Vincent Driessen的分支模型在git存储库中进行Maven版本控制
EN

Stack Overflow用户
提问于 2014-01-29 20:08:20
回答 2查看 329关注 0票数 2

目前我们正在使用cvs进行版本控制。我们希望使用Vincent Driessen的分支模型(http://nvie.com/posts/a-successful-git-branching-model/)迁移到git

对于构建,我们使用maven。

如果将功能分支合并到开发分支中,则maven版本将覆盖目标分支maven版本。

有没有可能防止这种情况发生?我们的用例是不是很愚蠢?

用于标准合并情况的自定义合并驱动程序将非常好,但afaik它们仅适用于特殊情况?

EN

回答 2

Stack Overflow用户

发布于 2014-01-29 20:24:10

听起来是个不错的主意。但是为什么整个建筑必须在同一台机器上进行呢?您可以设置单独的机器(甚至是虚拟机)来构建您关心的分支,从而使不同的环境严格分离(这就是我所理解的目标)。DVCS的美妙之处恰恰在于它们是分布式的,您可以将项目的一部分转移到其他地方。

从CVS的角度来看,习惯git不会一帆风顺。建立一个你关心的小项目(玩具项目不会做),但这不是关键的(你会搞砸,可能需要重新开始清理)来加快速度。将git用于您的“个人”工作(也许您有一组小脚本,可以自动执行重复性任务、配置文件等)。

票数 2
EN

Stack Overflow用户

发布于 2014-01-29 21:40:57

不要这样做。

  1. Git没有CVS这样的版本号。Git使用哈希码。你可以分配标签来模仿旧版本,但这涉及到手工工作。
  2. 不会将特性分支部署到主Maven代码库。主存储库应该只包含版本。
  3. 当您使用功能分支时,您不能再部署快照版本,因为来自不同功能分支的快照将相互覆盖。

以下是我们的解决方案:

  1. 功能分支很少离开开发人员机器。只有当在同一feature.
  2. Developers上工作的几个成员应该运行构建时,才会推送它们(包括。测试)。构建服务器只构建主分支和精选的几个功能branches.
  3. When构建服务器构建一个功能,它使用一个不同的maven repo来完成这项工作。这意味着构建服务器有N个本地maven repos。你必须这样做,以防止快照版本覆盖themselves.
  4. When一个功能完成,它被合并到主分支。此时,它对所有人都是可见的。
  5. 我们从不将快照版本部署到共享的Maven存储库。原因很简单:我为feature X部署了我的快照版本。另一个开发人员进来,启动他的PC并构建了一个模块。Maven现在将很高兴地下载我的快照,并破坏他的构建。或者不是。开发人员会有非常奇怪的错误。执行的代码与他硬盘上的源代码不匹配。将会损失很多小时。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21430687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档