我正在努力重构一个大型(主要是Perl)代码库。而是将所有内容放入一个巨大的git存储库中,我想将相关模块及其测试分组到单独的git存储库中,并使存储库的结构类似于CPAN发行版。
一个问题是,如果每个存储库都有一个不同的CPAN分发树,那么使用子模块似乎很尴尬,因为(出于测试目的)我们真正想要的是在测试中包含每个子模块的“lib”。这是一个小问题,我已经知道各种简单的解决方法(在测试中使用lib ...),但我想知道其他开发人员在类似情况下做了什么,以及什么是最佳实践。
更重要的问题是如何处理分支。如果创建了子模块的新分支,然后更新了分支,那么如何测试依赖于该分支的超级存储库中的代码? (我可能不一定要对超级存储库进行更改,只需检查子模块的更改是否有任何损坏。)
在类似的说明中,是否存在可以跟踪git存储库之间的依赖关系的实用程序,以便我可以确定哪些超级存储库需要在更改依赖项后对分支进行测试?
答案 0 :(得分:1)
由于该软件已准备好CPAN,因此在发行版元文件中为simply declare the test deps。换句话说,考虑分布,而不是存储库/分支。我认为你缺少像CPAN :: Mini或DPAN这样的东西,以及包装和注入发行版的过程。
分支机构应该增加版本号,可能使用下划线编号或使用-TRIAL
发行版名称来表示不稳定版本。
答案 1 :(得分:-1)
PERL5LIB
环境变量可用于避免向脚本添加临时use lib
语句。 perlrun