gpt4 book ai didi

git - 使用 git 进行插件开发

转载 作者:行者123 更新时间:2023-12-04 06:35:06 27 4
gpt4 key购买 nike

Similar questions对此有already been asked ,尽管它们并不是我想要做的。

起初我以为我需要一个 git 子模块,然后设置一个 super 项目,然后 merge 一个子树,但我不确定这些是否真的适合。

我有一个 project (Eva),我正在写一些 extensions for it这是可选的。因此,如果您要从 Github 下载 Eva 副本,它不会包含可选插件,但您可以单独获取并使用它们。

可选扩展与 Eva 位于相同的目录结构中。到目前为止很简单...

Eva
|
--- system/
--- events/
|
--- core_events
--- tests/
|
--- core_tests

Extension A
|
--- events/
|
--- [extension A]
--- tests/
|
--- [extension A tests]

今晚我想为这些扩展添加测试,目前我将它们放在本地 Eva git repo 之外的单独目录中。为了运行这些测试,我真的需要这些扩展与 Eva 位于同一目录中,事件依赖于核心系统来运行。
Eva
|
--- system/
--- events/
|
--- core_events
--- [extension A]
--- [extension B]
--- tests/
|
--- core_tests
--- [extension A tests]
--- [extension B tests]

我可以将 Eva 项目文件复制到扩展 repo 目录中,但如果我修改 Eva 的源代码,那么我必须继续复制这些更改。

我应该继续这个笨拙的设置,还是有更优雅的方式 git 可以适应这个?

也许我的要求与其他问题相反。我的扩展是 Eva 的一个子项目,我需要偶尔从 Eva repo 中获取更新。

如果我在有人克隆 Eva 时将我的扩展存储库添加为子模块,他们也会获得所有可选插件吗?我不想要那个。

也不确定子树 merge 是否合适,我永远不必将扩展项目 pull 入核心 Eva 项目。

最佳答案

我认为您最好的选择是尝试更改项目布局,以使每个扩展都更加独立,即驻留在它自己的目录中,例如/extensions。

在框架启动/测试运行时,扫描该目录并动态加载扩展。这样,您不仅可以轻松开发和使用 git,而且还可以更轻松地使用各种打包选项,即 I.E.压缩包。它使用户可以轻松查看使用了哪些扩展。

然后,您还可以允许 3d 方使用他们选择的 VCS 轻松开发“树外”扩展。

关于git - 使用 git 进行插件开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4951944/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com