TortoiseHG, вилка с подрепо - принудительная фиксация и нажатие только .hgsubstate

Есть публичное репо ртутного (не моего). Он содержит два подрепозитория. Я сделал вилку как для основного репо, так и для двух подрепо. Время от времени я хочу создавать запросы на вытягивание, но не могу заставить подрепозитории работать должным образом. Когда я клонирую свое разветвленное репо, оно будет загружено, но два подрепо останутся оригинальными, а не мое разветвленное. Если я заменю их на разветвленные, я не смогу сделать запрос на перенос, потому что я не хочу переключать исходное репо на свои подрепо. Но я хочу поменять и репо, и субрепо. Однажды я нашел решение. Я изменил файл 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, ничего не делая.


person Danil Eroshenko    schedule 14.05.2017    source источник


Ответы (1)


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

Желательно добавить в ваши .hgsub разделы, которые описывают пути в абсолютном смысле. Раньше я боролся с этим, когда у меня были вложенные репозитории на том же уровне в структуре каталога на сервере, но я хотел, чтобы они были вложенными каталогами на моем собственном компьютере. Это помогло мне добавить в .hgsub раздел подпути:

[subpaths]
ssh://[email protected]/path/subrepo1 = ssh://[email protected]/subrepo1
ssh://[email protected]/path/subrepo2 = ssh://[email protected]/subrepo2

/home/user/project/subrepo1 = /home/user/subrepo1
/home/user/project/subrepo2 = /home/user/subrepo2

project/subrepo1 = subrepo1
project/subrepo2 = subrepo2
person planetmaker    schedule 15.05.2017
comment
Это помогло бы мне работать с моим репо, но на самом деле это не было проблемой. Проблема в том, что если я изменю .hgsub, измененная версия будет предоставлена ​​в запросе на перенос. Это проблема - я не могу просто изменить .hgsub. - person Danil Eroshenko; 15.05.2017