Есть публичное репо ртутного (не моего). Он содержит два подрепозитория. Я сделал вилку как для основного репо, так и для двух подрепо. Время от времени я хочу создавать запросы на вытягивание, но не могу заставить подрепозитории работать должным образом. Когда я клонирую свое разветвленное репо, оно будет загружено, но два подрепо останутся оригинальными, а не мое разветвленное. Если я заменю их на разветвленные, я не смогу сделать запрос на перенос, потому что я не хочу переключать исходное репо на свои подрепо. Но я хочу поменять и репо, и субрепо. Однажды я нашел решение. Я изменил файл hgrc в папке .hg вложенного репо.
It was:
[paths]
default = ssh://[email protected]/originator/subrepo
Стало:
[paths]
Me = ssh://[email protected]/Me/subrepo
Original = ssh://[email protected]/originator/subrepo
Он работал именно так, как должен. Я изменил код, отправил его в свое субрепо, создал запрос на перенос для субрепо. Затем я внес изменения в свое основное репо, и оно просто сработало. .hgsubstate теперь ссылается на коммит, который существует в разветвленном репо, но не в исходном. Когда оригнатор обработает оба пул-реквеста, все заработает.
Я уже сказал, что раньше это работало, но не сейчас. По какой-то странной причине я не могу просто подтолкнуть .hgsubstate к новой ревизии субрепо, существующей в разветвленном субрепо. Я просто не могу включить это в коммит. Я нажимаю "совершить", но в результате фиксация не включается. И не знаю как форс включается - HG тоже "умно" насчет этого. Также TortoiseHG помечает мой субрепо как грязный. Но если я попытаюсь добавить и .hgsubstate, и мое грязное репо, он по какой-то причине попытается протолкнуть изменения в репо создателя. Похоже, моя HG просто не может зафиксировать .hgsubstate без внесения изменений в субрепо. Есть ли способ решить эту проблему? Все, что я хочу, - это зафиксировать и отправить .hgsubstate, ничего не делая.