>>595-597
hg headsはbranch1のヘッドが1つとdefaultのヘッドが1つ表示されます
またhg branchesでは仰るとおりにbranch2は表示されません

やりたかったことはbranch2をbranch1にマージした後にプッシュしたとき
プッシュ先でbranch2が閉じた状態にするだけでなく
hg logを見てもbranch2が取り込まれていない状況にしたかったのですが
説明していただいた内容からすると
branch2を閉じた後にどこかへマージすると
branch2の最後のリビジョンを親とするリビジョンが出来てしまって
そのリビジョンを親とするリビジョンを含むブランチをプッシュしてしまうと
-bでbranch2を指定していなくともbranch2をプッシュしないというわけにはいかない
ということなのですね。。。

別の方法がないかもう少し探してみて
無さそうだったら素直に全部のブランチをプッシュするようにします
ありがとうごいました