【发布时间】:2018-08-14 23:51:59
【问题描述】:
在我工作的地方,我们使用一个名为 apache Ivy 的工具来进行依赖管理。但是,我最近一直在开发自己的项目,其中包含多个存储库,因此,我使用 git 超级项目来维护所有存储库。 git 子模块对我来说非常棒,到目前为止,我更喜欢它们而不是 Ivy。以下是我喜欢 Ivy 的主要方面:
- 每当您对两个或多个相互依赖的存储库进行更改时,您只需提交到超级项目,这样就可以清楚地看出什么依赖于什么。在 Ivy 中,您必须发布一个全新的版本,这很烦人。
- 在超级项目中更好地跟踪更改要容易得多。据我所知,Ivy 不会很好地跟踪您对版本的更改。
- Git 的支持比 Ivy 多得多
- 你只需要了解一种工具,GIT!!!
但是,我的公司拒绝接触 git 子模块/超级项目。我也一直在做一些研究,似乎很多人不喜欢 git 子模块,它不被认为是一个“依赖管理”工具。谁能帮我理解为什么?
【问题讨论】:
-
Git 的子模块传统上很糟糕,部分原因是在 Git 1.5 和更早的时代,对 in-Git 的支持真的很差。它已经改进了很多,但从那时起我就没有尝试过使用它。看看其他人是否有很好的经验会很有趣。
-
我最近用过它,但仍然讨厌它。特别是如果超级项目中有多个开发人员和分支。如果您是一个人或与小团体一起,这很好。在任何其他情况下都会变得一团糟......
-
您使用哪种语言?编译/解释?
-
我在家里的项目:java、arduino (c++, c)。工作:主要是python。
-
我发现这篇 git-project-dependencies 的帖子可能对您的问题有很好的指导作用。
标签: git dependencies git-submodules dependency-management ivy