我有一个包含多个子目录的仓库。每个子目录都包含一个可部署到Heroku的应用程序。要关闭代码,请按照建议here使用git subtree
。
这一点运作良好,我希望通过添加版本化API作为可部署的应用程序继续朝着这个方向发展。问题是这些API共享大量代码。
有没有办法在此设置中拥有共享代码,以便应用程序仍可部署,共享代码包含在repo中? API是用python编写的,因此pip / virtualenv特定的东西可以工作。
据说submodules工作,但我宁愿避免他们,因为他们留下了糟糕的经历。
答案 0 :(得分:0)
从来没有得到答案,所以这就是我所做的。
我继续使用子树而不是子模块。然后,对于每个子项目,我为pip创建了两个requirements.txt:一个用于Heroku,一个用于在本地运行子项目。它们看起来一样,减去共享库。
在基于Heroku的requirements.txt中,共享库的指定如下:
-e git+https://username:password@github.com/org/repo.git#egg=sharedlib&subdirectory=sharedlib
这告诉pip从github中将子目录sharedlib
从repo
拉出来。
在本地运行项目的requirements.txt中,共享库的指定如下:
-e ../sharedlib
这告诉pip从repo中提取localy子目录sharedlib
。
希望这有帮助!