Способ справиться с этим - заставить DevA быть более внимательным к родительской ревизии своего изменения. Прежде чем devA исправит исправление, он должен hg update
сделать самую раннюю ревизию, в которой это исправление могло быть сделано (часто это набор изменений, в котором была представлена ошибка). Когда Dev A фиксирует сообщение, он / она увидит сообщение о том, что был создан новый руководитель. Эту новую головку затем можно вытащить и объединить с любой веткой или репо, в которых есть ошибка, без чего-либо еще.
Ключ в том, что вы, когда вы извлекаете набор изменений, должны иметь в своем репо любые наборы изменений, которые являются предками изменяемого пакета, поэтому, если вы хотите, чтобы кто-то мог получить исправление, вы ' выполняя, не вытягивая всю другую работу, которую вы проделали, просто убедитесь, что родитель исправления - это набор изменений, который они наверняка уже имеют.
Это требует от разработчика немного большей предусмотрительности, но предпочтительнее иметь одно и то же изменение в репо несколько раз с разными идентификаторами узлов, что, как вы заметили, проблематично (и некрасиво).
Эти новые головы - то, что некоторые люди называют "анонимными ветвями", и они не распространяются так же, как названные ветви.