Subrepositórios mercuriais: Evite confirmações e empurramentos recursivos acidentais

Eu trabalho em uma equipe onde temos um código em um repositório mercurial com vários subrepositórios:

main/
main/subrepo1/
main/subrepo1/subrepo2/

O comportamento padrão do Mercurial é que, quando umhg commit for executado em "main", quaisquer alterações pendentes nos sub-repositórios "subrepo1" e "subrepo2" também serão confirmadas. Da mesma forma, quando "main" é pressionado, quaisquer confirmações de saída em "subrepo1" e "subrepo2" também serão pressionadas.

Constatamos que as pessoas frequentemente cometem e pressionam inadvertidamente alterações em seus sub-repositórios (porque esqueceram que haviam feito alterações ehg status por padrão, não mostra alterações recursivas). Também descobrimos que esses envios / envios globais são quase sempre acidentais em nossa equipe.

O Mercurial 1.7 melhorou recentemente a situação comhg status -S ehg outgoing -S, que mostram alterações nos subrepositórios; mas ainda assim, isso exige que as pessoas prestem atenção.

Existe uma maneira no Mercurial de fazerhg commit ehg push abortar se houver alterações / confirmações nos sub-repórteres que de outra forma seriam confirmadas / enviadas?

questionAnswers(5)

yourAnswerToTheQuestion