git 如何判断哪个模块是另一个模块的子模块?
How to decide which module is a submodule of the other in git?
假设有一个模块 A
和一个测试模块 T
。
我想决定哪个应该是另一个的子模块。
直觉上,让 T
成为 A
的子模块对我来说是有意义的,因为它本身没有任何意义。
但是,例如我读到 here
... if the technological context allows for packaging and formal
dependency management, you should absolutely go this route instead
请假设我们现在没有能力设置打包管道,因此需要使用子模块。
根据这个原理,将 A
视为一个包并为 T
“安装”它是有意义的,这意味着 A
实际上是T
.
这让我很困惑,我想知道这个用例的最佳实践,最好也知道如何决定“什么是什么的子模块”这一主要问题的经验法则。
您主要使用子模块来实现对依赖项的高度控制。考虑到 A
和 T
的情况,A
肯定是子模块,因为它是 T
的依赖项。您更有可能希望坚持使用 A
作为子模块,以便您的测试项目 T
以 A
.
的特定版本为目标
此外,如果我的项目 A
是许多其他项目的子模块,那么对我来说更自然:这样每个项目都可以拉取 A
的版本它们兼容。
最后但同样重要的是,假设您想从零开始测试项目 T
:如果 A
是一个子模块,您可以销毁 T
而不必担心任何事情。相反,如果 A
有 T
作为子模块,您需要处理好它并重新链接新的测试项目。
关于经验法则,这是我的:如果 A
依赖于 B
,B
成为子模块。按照这个规则,可以单独开发依赖。
假设有一个模块 A
和一个测试模块 T
。
我想决定哪个应该是另一个的子模块。
直觉上,让 T
成为 A
的子模块对我来说是有意义的,因为它本身没有任何意义。
但是,例如我读到 here
... if the technological context allows for packaging and formal dependency management, you should absolutely go this route instead
请假设我们现在没有能力设置打包管道,因此需要使用子模块。
根据这个原理,将 A
视为一个包并为 T
“安装”它是有意义的,这意味着 A
实际上是T
.
这让我很困惑,我想知道这个用例的最佳实践,最好也知道如何决定“什么是什么的子模块”这一主要问题的经验法则。
您主要使用子模块来实现对依赖项的高度控制。考虑到 A
和 T
的情况,A
肯定是子模块,因为它是 T
的依赖项。您更有可能希望坚持使用 A
作为子模块,以便您的测试项目 T
以 A
.
此外,如果我的项目 A
是许多其他项目的子模块,那么对我来说更自然:这样每个项目都可以拉取 A
的版本它们兼容。
最后但同样重要的是,假设您想从零开始测试项目 T
:如果 A
是一个子模块,您可以销毁 T
而不必担心任何事情。相反,如果 A
有 T
作为子模块,您需要处理好它并重新链接新的测试项目。
关于经验法则,这是我的:如果 A
依赖于 B
,B
成为子模块。按照这个规则,可以单独开发依赖。