我正在开发一个Magento商店(连接到 Git 的 SVN 存储库),利用基于 HTML5 样板的Magento-Boilerplate主题(GitHub 存储库)并用我自己的子主题(私有 Git 存储库)扩展它。这些都存在于一个 www 文件夹中,该文件夹恰好是所有三个项目的顶级目录。我想将所有这些干净地集成到它们各自的存储库中,但是我发现的单个目录中多个存储库的唯一解决方案是子模块(我喜欢这个想法,但据我所知,要求每个项目位于主 Git 存储库的子文件夹中)并将文件符号链接到适当的位置(应该可以工作,但有点混乱而且很难跟上)。
有没有一种干净的方法来完成这项工作?这是我的文件夹结构的示例。我已经指出每个文件/目录所在的 repo(s) - M = Magento,B = Boilerplate,P = Private:
/www
|-- app [M]
|-- frontend [M]
|-- base [M]
|-- magento-boilerplate [B]
|-- default [B]
|-- myprivatetheme [P]
|-- skin [M]
|-- frontend [M]
|-- base [M]
|-- magento-boilerplate [B]
|-- default [B]
|-- myprivatetheme [P]
|-- .htaccess [M][B][P]
|-- favicon.ico [M][P]
如您所见,即使没有整个 .htaccess 和 favicon.ico 位于多个存储库中(我只会在 Magento 和 Boilerplate 存储库中使用 gitignore 或 --assume-unchanged 并使用我的私有存储库)顶级目录是 www,因为 Magento 将代码和主题拆分到具有 www 的共同父级的单独文件夹中的方式。因此,从技术上讲,您甚至可以说应用程序、皮肤和各种前端文件夹也存在于多个存储库中,因为它们必须存在于每个存储库中,一直到结构的顶级目录。
从单独的文件夹中符号链接这些存储库是我唯一的解决方案吗?这不是一个大问题,但我真的很想知道 Git 是否足够灵活来处理我的情况。看起来modman可能是专门为解决这个符号链接问题而创建的。