A maneira como isso é feito é que cada desenvolvedor deve mesclar as alterações antes de confirmar um arquivo. Eu nunca usei o Mercurial, então eu não sei os comandos ou o processo exato, mas em qualquer ferramenta séria de gerenciamento de configuração você será avisado se tentar fazer o check-in "por cima" de outra pessoa. Quando você receber esse aviso, você deverá mesclar as outras alterações na sua cópia com check-out, verificar a compilação e os testes, etc. e, em seguida, fazer check-in.
Este é um problema muito comum, e a fusão dessa maneira pode ser uma PITA real, mas é a vida. A abordagem alternativa de bloquear todos os arquivos com check-out evita esse problema, mas tem a séria desvantagem de bloquear todos os outros enquanto você trabalha em um arquivo, o que, por sua vez, leva as pessoas a editar versões descontroladas. >