Забудьте об именах ветвей, они - не что иное, как метаданные на наборах изменений. Ваши изменения будут объединены, если вы обновите версию, являющуюся потомком или предком вашего текущего рабочего родителя, и не будут объединены в противном случае.
Таким образом, вы можете обновиться с A на B, если есть способ добраться от A до B, перемещаясь только по родителям или только по детям. E.g.:
-- A -- 1 -- 2 -- B --
Здесь вы можете обновить данные от A до B и от B до A, потому что они являются потомками и предками друг друга.
-- A -- 1 -- 2 -- C --
\
4 -- B --
Здесь вы также можете обновить с A до B (или с B до A), даже если они находятся в разных ветвях. Однако вы не можете перейти с B на C, потому что для этого вам сначала нужно вернуться назад, а затем вперед.
Обратите внимание, что вы можете обойти это, выполнив маневр назад-вперед самостоятельно:
(on revision B)
$ hg up 2
$ hg up C