Вы делаете это с помощью:
hg update branchname
, который обновляет вас до "самой наклонной головки на этой ветви", потому что, конечно, у ветви может быть несколько голов.
Когда высделайте hg pull --branch branchname
то, что вы делаете, вытягиваете «все наборы изменений в Branchname ветви и все наборы изменений не в Branchname, которые являются предками любого набора изменений в Branchname», что не очень полезно.
Вылучше просто сделать обновление после вытащить.