Ответ 1
Я думаю, что вам нужно будет сделать локальные клоны подпозиции.
Проблема с нажатием основного репо без подталкивания подпозиций заключается в том, что содержимое подпозиций не является частью основного репо - только их состояния. Содержимое ссылается на исходное местоположение, указанное в .hgsub
. Поэтому в вашем основном репо .hgsubstate
говорится: "subrepo A находится в редакции abcd1234", но abcd1234 - это изменение, которое вы сделали, которого не хотите нажимать... и теперь, что произойдет, если вы клонируете основное репо? Он попытается клонировать subrepo из своего исходного местоположения и обновить его до abcd1234, но эта ревизия не существует в исходном местоположении, поэтому клон будет терпеть неудачу.
Вместо этого вы можете создавать локальные клоны каждого внешнего репозитория и ссылаться на них как на внешние местоположения subrepos. Затем, когда вы нажимаете основное репо, изменения subrepo будут распространяться только на ваши локальные клоны. Когда вы будете готовы поделиться этими изменениями, просто перейдите к локальным клонам и нажмите оттуда, и вы сможете передавать имена ветвей и т.д.