Как управлять зависимостями при клонировании репозитория? - PullRequest
3 голосов
/ 22 января 2011

Я использую 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 со всеми необходимыми зависимостями (например, рабочие / и инструменты /) без необходимости клонировать утилит / рабочих и утилит / инструментов внутри 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/ и python-gflags в /utils/python-gflags

Я надеюсь, что этопомогает немного уточнить, что я пытаюсь сделать.

Ура,

Мартин

Ответы [ 2 ]

0 голосов
/ 01 февраля 2011

Лучшее решение, которое я нашел для этого, это использование buildout.

http://www.buildout.org

Это действительно полезное решение для управления зависимостями.

0 голосов
/ 22 января 2011

Вы должны посмотреть на вложенные репозитории (которые также называются вложенными )

...