Git + SoA,一个回购或多个?

时间:2010-05-13 12:52:49

标签: web-services git

通常,当我启动一个新的应用程序时,我会为它创建一个新的git存储库。当我想分享我的代码时,这是很好的接受并与Github一起玩。

在工作中,我正在从事面向服务的架构。一种非常常见的模式是同时向两个不同的应用程序添加一些代码 - 可能是将一个带有RESTful接口的模型添加到一个应用程序和一个Web前端,以便在另一个应用程序上进行管理。在这种情况下,使用单独的git存储库有一些瑕疵。

以下是我认为执行单独存储库的缺点:

  1. 我必须提交两次
  2. 我无法很好地相关相关提交
  3. 没有一个地方可以追溯并追踪历史 - 我希望能够在一个地方提出我当天的所有承诺
  4. 忘记拉回一个或另一个回购是一个骗局
  5. 另一方面,我经常使用perforce,它的一个巨型存储库模型也有很多瑕疵。 Perforce的功能旨在帮助您解决这些问题,而git则没有。

    还有其他人遇到过这种情况吗?你是怎么处理的呢?什么运作良好,什么没有效果?

1 个答案:

答案 0 :(得分:1)

如果您的不同回购是同一个全球应用程序的一部分,您可以将它们组合在一起 submodules within a main project
从那里你可以:

  • 在项目P1中只提交子模块一次(如果子模块需要在另一个项目P2中重用,你进入另一个项目P2,在引用你刚刚在P1中提交的子模块的子目录中,结帐提交,返回一级并提交其他项目P2,因为P2必须引用相同的提交P1)

  • 所有相关提交都由主项目

  • 引用
  • “超级主”项目可以引用所有你的子模块,以便你有“单一地点返回并追踪历史记录”

    < / LI>
  • 您只需要拉动主项目,这将拉出正确的子模块引用。