Как исправить основное репо, когда фиксация/пуш была сделана из подрепозитория в Mercurial

Итак, у меня есть основной репозиторий Mercurial, состоящий из 3 субрепозиториев.

Обычно правильный способ фиксации/нажатия, который я понял, заключается в следующем:

hg commit -Sm 'Fixed a bug' # This commit was done from the main repo
hg push

Я сделал ошибку и зафиксировал/отправил из одного из вложенных репозиториев:

hg commit -m 'Fixed a bug' # This commit was done from a sub-repo
hg push

Теперь другой кодировщик, который будет извлекать/обновлять основное репо, не увидит мои изменения в подрепозитории.

Каков правильный Mercurial способ исправить это?

Вручную изменить файл .hgsubstate в основном репо и зафиксировать/подтолкнуть его?

Если да, то я понимаю, что первая часть идентификатора — это кончик последнего набора изменений подрепозитория, но как насчет остальной части идентификатора? Как он генерируется?

OR

Ожидание следующего коммита/пуша, чтобы файл .hgsubstate был исправлен с последним набором изменений?

OR

Фиксация и отправка фиктивного набора изменений?

OR

Что-то другое...


person Bruno    schedule 18.07.2016    source источник


Ответы (1)


Я не знаю, правильно ли я понял вашу проблему, но мне кажется, что правильным способом было бы войти в подрепозиторий, сделать извлечение и обновление, затем выйти в основное репо и выполнить фиксацию/пуш.

См. https://www.mercurial-scm.org/wiki/Subrepository#Synchronizing_in_subrepositories

person juppman    schedule 19.07.2016
comment
Да, вы правильно поняли задачу. Спасибо. - person Bruno; 20.07.2016