Git + SoA,一个仓库还是多个仓库?

4
通常情况下,我在启动一个新应用程序时会为它创建一个新的git仓库。这是非常受欢迎的做法,并且当我想分享我的代码时,与Github兼容。
在工作中,我正在使用服务化架构。其中一种常见的模式是同时向两个不同的应用程序添加一些代码-例如,在一个应用程序中添加具有RESTful接口的模型,在另一个应用程序上添加用于管理它的Web前端。在这种情况下,使用单独的git仓库存在一些弊端。
以下是我认为单独使用仓库的缺点:
  1. 我必须提交两次
  2. 我无法很好地关联相关的提交
  3. 没有一个单一的地方可以返回并跟踪历史记录-我希望能够在一个地方查看我一天内的所有提交
  4. 忘记拉取一个或另一个仓库是一个大坑
另一方面,我经常使用Perforce,它的一个巨大的仓库模型也有很多弊端。Perforce有一些旨在帮助你处理这些问题的功能,而Git则没有。是否有其他人遇到过这种情况?你是如何处理的?哪些方法效果很好,哪些不行?
1个回答

1

如果你的不同仓库是同一个全局应用程序的一部分,你可以将它们作为主项目中的子模块合并在一起。
从那里你可以:

  • 在项目P1中只提交一次子模块(如果子模块需要在另一个项目P2中重复使用,那么你需要进入该另一个项目P2,在引用P1中提交的子模块的子目录中检出该提交,在上一级目录中回退并提交该另一个项目P2,因为P2必须引用与P1相同的提交)

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

  • "超级主"项目可以引用你所有的子模块,以便你有一个"回溯历史的单一位置"

  • 你只需要拉取主项目,就能拉取正确的子模块引用。


这可能会有所帮助。我以前没有听说过子模块。它们是(大多数)独立的Rails应用程序,通过RESTful接口相互通信。客户端库放在各个应用程序可以使用的gem中。 - edebill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接