Я использую mercurial, и мне интересно, как это сделать. Вот мое хранилище архитектуры:Как управлять зависимостью при клонировании репозитория?
./repo/utils/workers/[...]
./repo/utils/tools/[...]
./repo/proj1/file.py
Допустим, что в proj1/file.py мне нужно импортировать код, расположенный в рабочих и инструментов. например
from utils.workers import foo
from utils.tools import bar
Что бы быть лучшим способом/инструмент, чтобы проверить proj1 со всеми необходимыми зависимостями (например, рабочие/и инструменты /) без необходимости клонировать Utils/рабочих и Utils/инструменты внутри proj1.
Также - делать 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/
, и питон-GFLAGS под /utils/python-gflags
Я надеюсь, что это помогает немного прояснить, что я пытаясь сделать.
Приветствия,
Martin
'sys.path.append ('/ path/to/repo')' достаточно, если вы хотите запустить из проверки. Также вы можете использовать 'pip' и' virtualenv'. 'pip' поддерживает установку с Mercurial repo, checkout, inplace и т. д.' virtualenv' позволяет вам иметь несколько версий. – jfs