我正在研究如何在我的自有代码库中与供应商的库(在这种情况下是Magento)进行最佳集成。对我来说,我不需要向供应商提交补丁(尽管这将是一个很好的附加优势)。
我已经研究了git submodule和git subtree,但我认为git submodule并不能满足我的需求。Magento具有以下类型的树形结构:
/app
/code
/community *
/core
/local *
/design
/adminhtml
/frontend
/base
/yourtheme *
/lib
/Zend
/Varien
/yourlib *
/js
/yourjs *
/varien
/mage
在使用 git submodule 时,将其放在不同的文件夹中似乎效果最佳(例如,/ 是您的应用程序,/ vendor / magento 是子模块)。然而,在这种程度上相互交织的情况下,子模块似乎不是一个好的解决方案。那么,我对此是否有误解?
那么,我只能选择使用 git subtree。但是对于 git subtree,同样的核心假设(即供应商分支作为子树)并不成立。Magento 不是子树,而是我的项目所适合的核心库。是吗?
如果这两种 git 的方法都不起作用,我应该了解哪些其他方法才能实现我想要的目标?
最后一个选项我不太愿意追求,那就是拥有一个仓库,然后将其应用到最新的供应商更改上(从 tarball 中获取)。我不愿追求这个选项,因为我感觉获得供应商的日志信息(来自https://github.com/magentomirror/magento-mirror)将极大地帮助我整理新的更新并找出影响我的变更。