Как работать с перекрывающимися репозиториями в Mercurial - PullRequest
3 голосов
/ 20 мая 2010

Часто я хочу иметь основной репозиторий исходного кода, который будет использоваться несколькими «похожими» проектами. Каждый подпроект содержит большинство одинаковых файлов, но является конкретным настраиваемым экземпляром. Это означает, что обычно существует множество файлов и каталогов, которые должны быть разными для каждого экземпляра.

В CVS я использовал для создания основного и вторичного репозитория, а затем использовал файл модулей, чтобы связать их вместе для определенного имени. В SVN я использовал svn: externals, чтобы связать вторичные каталоги с основными.

Что работает в Mercurial?

1 Ответ

4 голосов
/ 20 мая 2010

Это зависит от характера конкретных файлов, которые должны отличаться.
Если вы можете преобразовать их как файлы шаблонов, то вы можете:

  • имеют главное репо, совместно используемое как SubRepo (как сказано в документации: SubRepos являются «самыми близкими к тому, чего вы можете достичь с помощью каталогов Subversion, отмеченных свойством svn:externals «)
  • имеет «похожие» проекты, которые:
    • включить это основное репо в качестве подрепортажа ( со ссылкой на конкретную ревизию )
    • запустить версионный скрипт, который возьмет эти шаблоны файлы и создаст фактические файлы с правильными значениями для среды.

Таким образом, вы храните отдельные шаблоны (в основном репо) и значения (о которых каждый аналогичный проект знает в зависимости от конкретной среды).
При этом не все варианты файлов могут быть обработаны как «шаблоны для создания экземпляров».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...