在另一个项目中使用一个mercurial项目的最佳做法是什么?我有一个django应用程序,我正在努力,但我也使用mercurial版本控制使用该应用程序的网站。我看过mercurial subrepositories,但显然这被认为是“最后的特色”。有没有一种方法可以做我想做的事情,或者当我想要更新到我的应用程序的新版本时,我是否只需要将我的应用程序中的代码复制到我的网站仓库中?
答案 0 :(得分:1)
在您的具体情况下,我想让pip
处理我的django应用程序依赖项:http://guide.python-distribute.org/pip.html#installing-from-a-vcs
我们在“网站”中有一个requirements.txt
,我们的部署会执行pip install --upgrade -r requirements.txt
,它会从回购中提取最新信息并将其安装到应用程序的虚拟环境中。这提供了良好的灵活性和分离,同时使包管理保持最佳状态。如果您希望不同的网站使用来自同一底层回购的不同版本,那么使用pip中的那些VCS网址也可以指向特定的标记或分支。
pip还有一个-e /path/to/file
模式,用于指向网站仓库之外的“可编辑”克隆,这也可以使用,但我没有尝试过。
也就是说,如果您认为subrepos更适合您的工作流程,请务必使用它们。他们工作得很好,但是人们经常会对工作流程的限制感到困惑(“你是什么意思我不能提交我的父级回购,而且还提交了subrepo?!”)