Как получить изменения для распространения на все подпункты в Mercurial? - PullRequest
2 голосов
/ 16 апреля 2010

Я недавно переключился с Subversion на Mercurial для контроля исходного кода и при этом разделил один репозиторий на несколько. Я использовал подпункты для управления зависимостями между репозиториями. Проблема состоит в том, что pull не поддерживает Superprepo, поэтому мне нужно войти в каждый подпункт и вытащить изменения, чтобы обновить репозиторий. Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 16 апреля 2010

тяга не знает о суперпо

hg pull должен учитывать субрепортаж при условии, что он используется с опцией -u (--update).

hg update должен, когда он подходит к подпунктам , учитывать их:

Всякий раз, когда более новые версии Mercurial встречают этот файл .hgsubstate при обновлении вашего рабочего каталога, они пытаются вытащить указанные подпункты и обновить их до соответствующего состояния.

Подпункты могут также содержать свои собственные подпункты, и Mercurial будет возвращаться по мере необходимости.


OP CoreyD добавляет:

Это не сработало для меня.
Я создаю два репо /repo и /sub и клонирую сабо в репо (/repo/sub).
Затем я создаю .hgsub файл в /repo с такой строкой, как эта sub = ../sub, и фиксирую его.
Когда я делаю изменения в /sub, а затем делаю обновление в /repo /repo/sub без изменений.
Я что-то не так делаю?

Это выглядит примерно так:
SubRepos или субмодули (для Git) - это ссылки на точную конфигурацию (changeset ref для hg или commit ref для Git, как объяснено в этом SO вопросе )

Когда вы изменяете что-либо вне из /repo, вы не изменяете .hgsubstate файл в пределах /repo, записывая точную конфигурацию (ссылка на набор изменений).
Следовательно, никаких изменений.

Вы могли бы скорее внести ваши /sub изменения непосредственно в /repo/sub, зафиксировать их, затем зафиксировать /repo.
Тогда , клон /repo будет иметь новую конфигурацию.

...