我有一个包含多个依赖项的项目,这些依赖项位于各种存储库中。每次我对项目进行更改时,我都会确保编写所有相关存储库的修订号,这样如果我必须回到此修订版(让我们称之为5),我可以立即知道哪些修订版保证依赖的存储库修订版5可以使用,更新指定修订版的依赖项,编译并运行项目。例如,如果我有:
Dep1 @ Revisions 10
Dep2 @ Revisions 20
Dep3 @ Revisions 10
Proj @ Revisions 35
让我们说当 Proj 处于修订版17
时, Dep1 版本为5
, Dep2 修订版为13
, Dep3 版本为3
。所以在我的SVN日志中,我记录了这样的内容:
!! Works with Dep1 Rev 5, Dep2 Rev 13, Dep3 Rev 3
对我而言,这似乎是原始的,让我相信有更好的方法来做到这一点。现在在我的其他一个问题中,推荐使用Ivy Dependency Manager。我还没有详细看过它(看起来很复杂,还有一件我必须学习的东西)。对我来说,似乎SVN(和Mercurial等)的日志可以被分成Log
和Dependencies (if any)
,如果没有依赖关系,后者可以被关闭(除非我当然不知道一个更容易/更好的解决方案)。这将允许更清晰的日志,甚至可能在每次新提交时发出警告,以再次检查先前定义的依赖关系并确保它们没有更改。
所以,我想知道每个人如何管理这种情况,以及你是否有任何提示,技术,程序和建议。
谢谢。
答案 0 :(得分:2)
将依赖存储库添加为子项目,子模块或外部存储库,具体取决于您的版本控制系统调用它。
这样,您可以在处理存储库时保持依赖关系同步,但是,它仍然是手动的。
更好的是编写测试,以便您可以自动确定依赖项是否满足所有要求。
答案 1 :(得分:1)
如何编译依赖项以及它们与项目的连接方式?如果它们不是您项目的一部分,请将它们编译为.dll(或.jar或其他)并将其提交给您的项目。您可以在提交注释或自述文件中注明版本和任何注释(也会提交给您的项目)。然后使用它,并定期更新依赖项.dll。