在另一个项目中使用一个 mercurial 项目的最佳实践是什么?我有一个正在开发的 django 应用程序,但我也在使用 mercurial 对使用该应用程序的网站进行版本控制。我看过mercurial subrepositories,但显然这被认为是“不得已而为之的功能”。有没有一种很好的方法来做我想做的事情,或者当我想更新到我的应用程序的新版本时,我只需要将代码从我的应用程序复制到我的网站存储库中?
问问题
132 次
1 回答
1
在您的特定情况下,我喜欢让pip
处理我的 django 应用程序依赖项:http: //guide.python-distribute.org/pip.html#installing-from-a-vcs
我们在我们的“网站”repo 中有 arequirements.txt
并且我们的 deploy 会pip install --upgrade -r requirements.txt
从 repo 中提取最新的并将其安装到应用程序的虚拟环境中。这提供了很好的灵活性和分离性,同时将包管理留给 pip。使用 pip 中的这些 VCS url,如果您希望不同的站点使用来自同一底层存储库的不同修订版,您也可以指向特定的标签或分支。
pip 还具有-e /path/to/file
指向网站存储库之外的“可编辑”克隆的模式,这也可以,但我没有尝试过。
也就是说,如果您认为 subrepos 更适合您的工作流程,请务必使用它们。它们工作得很好,但人们经常被工作流程限制所困扰(“你的意思是我不能提交我的父仓库而没有提交子仓库?!”)
于 2013-02-15T15:48:26.687 回答