我正在创建一个可以在同一软件的两个单独版本上运行的应用程序.这些框架将具有完全不同的模块,并且与我构建的 JavaScript框架具有共享依赖性. 让我们说吧 dave/version1dave/version2 两者都
让我们说吧
dave/version1 dave/version2
两者都通过要求共享依赖
dave/framework
我想在两个父模块都需要的存储库中维护这个框架(dave / framework).但是,这些框架文件需要放置的位置在两个模块之间略有不同,同时对composer.json文件的要求略有不同,以确保所有内容都能正确移动(这两个版本的软件实现了编辑器的不同).
凭借我对作曲家和Git的有限知识,我制定了几个解决方案:
>创建三个存储库,两个包含特定composer.json文件的包装存储库,以支持每个不同版本的软件.另一个依赖于包含实际框架的第三个存储库.我不确定这是否会在理论之外起作用.最后也有点乱.
>使用某种形式的聪明标记,并且版本1和版本2依赖于框架的不同版本,而这些版本的构成略有不同.然后,Composer将努力拉动最新版本的模块,因为我们将在奇怪的版本中运行两个如此略微不同的代码库.
然而,这些似乎都可能是凌乱的,并且构造我想要实现的东西的方式也不正确.
有没有一个很好的方法来实现这一目标?或者我最好为框架维护两个单独的存储库?
通过一些正确的计划,您的第一个选择将比您想象的更容易.Git有一个名为Submodules的系统.
Version1和Version2 repos将在其中包含Frameworks repo.然后,当您更新Framework时,您可以在Version1 / 2中提取这些更新没有问题.您可以控制何时以及如何操作,因此您可以确保不会在路上引入错误.
以下是子模块的一些文档:https://git-scm.com/book/en/v2/Git-Tools-Submodules
https://git-scm.com/docs/git-submodule