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