我有一个多子域网站,它已被设置为单个Git存储库,其中包含dev,为每个子域设置分段分支。由于所有子域中都使用代码通过Doctrine实体与数据库一起工作,最终在每个分支中使用不同版本的实体,并且在分支中的实体时最终出现错误,因此效果不佳正在努力与数据库的结构不匹配。
由于该网站仍在进行大量开发,我们需要一种方法来保持所有分支(如Doctrine实体)的公共代码更新。这个网站有更好的设置吗?
文件夹结构如下:
root
- vendor
- - (composer libs including Doctrine)
- application
- - models
- - - Entities
- - - - OldDB
- - - - NewDB
- - - Repository
- - - - OldDB
- - - - New DB
- - modules
- - - subdomain1
- - - subdomain2
- - - subdomain3
- - - othermodule
- - - moduleforsubdomain2
- tests
子域代码包含在主站点的子文件夹中。整个站点是一个安装。
答案 0 :(得分:1)
一种方法是考虑:
那样:
dev
'在root中分支,你可以在子模块中创建一个类似的分支'dev
',并确保每个子模块更新将将该子模块设置为其最新的“dev
'SHA1)答案 1 :(得分:0)
也许是因为我对相关系统缺乏了解,但在我看来,你只需要一个回购。只使用一个repo来处理大型SW系统非常有效。在我看来,SW结构(模块)和回购之间应该没有关系。
git的子模块概念可以在它们单独交付时使用,并且它们具有干净的接口,但在大多数情况下,每个系统只有一个单独的repo可以很好地工作。在你的特定情况下,听起来他们没有干净的界面,这就是为什么我建议一个大的回购。