克隆存储库时如何管理依赖?

时间:2011-01-22 01:47:44

标签: python mercurial repository repository-pattern distutils

我正在使用mercurial,我想知道如何做以下事情。 这是我的存储库架构:

./repo/utils/workers/[...]
./repo/utils/tools/[...]
./repo/proj1/file.py

让我们说在proj1 / file.py中我需要导入一些位于worker和tools中的代码。例如

from utils.workers import foo
from utils.tools import bar

使用所有必需的依赖项(例如,workers /和tools /)检查proj1的最佳方法/工具是什么,而无需在proj1中克隆utils / workers和utils / tools。

另外 - 做sys.path.append(repo/utils/workers)不是一种选择。

==编辑01/24/11 ==

感谢所有答案。 我一直在想一种能够以不同的方式真正解释我的问题的方法,并且我们应该对hg进行抽象以便更好地理解。 让我们说在/utils/中还有另外几个模块,它们不属于我的项目,但实际上是需要的。例如:http://code.google.com/p/python-gflags/ 签出/repo/proj1/时,我希望所有的依赖关系,无论它们形成哪个存储库,都要检查出来 - 但是从那时开始只读。

所以,如果我hg clone /proj1/,我希望此操作也可以从/utils/workers/克隆所有需要的模块, /utils/tools/,  和python-gflags下  /utils/python-gflags

我希望这有助于澄清我想要做的事情。

干杯,

马丁

2 个答案:

答案 0 :(得分:0)

您应该查看subrepositories(也称为nested

答案 1 :(得分:0)

我发现的最佳解决方案是使用buildout。

http://www.buildout.org

这是一个非常有用的解决方案来管理依赖项。