Monolith git repo vs micro repos

时间:2015-06-23 13:18:43

标签: git gradle release

我有一个包含几个小批量作业的项目。每个批处理作业完全独立于另一个(使用不同的文件格式/ REST结构连接到不同的S3存储桶或REST服务)。创建所有这些批处理作业需要几个月的时间。理想情况下,我希望独立发布每个批处理作业。特别是当涉及到生产修补程序的概念时。在紧急情况下释放一个批处理作业比在被迫重新释放所有批处理作业(并且必须处理正在运行的作业)更快更容易。

现在最大的障碍是git。我应该:

  1. 为每个批处理作业创建一个新的git仓库
  2. 为所有工作创建一个整体仓库或
  3. 为某些批处理作业子组创建仓库
  4. 我倾向于选择1,但是几十个git repos的概念似乎势不可挡。所有工作都会导入一个共同的回购。如果我需要在共同的回购中改变一些东西,我必须为每一批工作做一个git dance。但是,如果我把所有内容都放在一个整体的回购中,我要么必须有几十个“主”分支,要么每次重新发布每个工作。

    是否可以使用micro git repos并使用某种工具进行简单的操作(例如所有repos的git clone)?也许gradle能以某种方式做到这一点?是否更好地使用单片回购并具有丑陋的发布过程和分支结构?

1 个答案:

答案 0 :(得分:0)

我非常强烈地认为微回购是一种喜忧参半的祝福,所以我鼓励任何人想要先走这条路来先阅读this post。也就是说,mr实用程序允许您将repos的临时集合视为单个逻辑单元,甚至可以使用非同类的repo类型集合(git,{{1} },svnhg等)。我发现非常易于使用 - 以至于它已经取代了我用了几年来管理多个回购的自定义Fabric脚本。如果您只处理 git repos,那么Android repo也可能会引起关注。